public override void Add (JSONNode aItem) { var tmp = new JSONArray (); tmp.Add (aItem); Set (tmp); }
public override void Add (string aKey, JSONNode aItem) { var tmp = new JSONClass (); tmp.Add (aKey, aItem); Set (tmp); }
public JSONLazyCreator(JSONNode aNode) { m_Node = aNode; m_Key = null; }
private void Set (JSONNode aVal) { if (m_Key == null) { m_Node.Add (aVal); } else { m_Node.Add (m_Key, aVal); } m_Node = null; // Be GC friendly. }
public virtual void Add (JSONNode aItem) { Add ("", aItem); }
public override JSONNode Remove (JSONNode aNode) { try { var item = m_Dict.Where (k => k.Value == aNode).First (); m_Dict.Remove (item.Key); return aNode; } catch { return null; } }
public override JSONNode Remove(JSONNode aNode) { m_List.Remove(aNode); return(aNode); }
public override void Add (string aKey, JSONNode aItem) { m_List.Add (aItem); }
public virtual void Add(string aKey, JSONNode aItem) { }
public override void Add(string aKey, JSONNode aItem) { m_List.Add(aItem); }
public static JSONNode Parse(string aJSON) { Stack <JSONNode> stack = new Stack <JSONNode> (); JSONNode ctx = null; int i = 0; string Token = ""; string TokenName = ""; bool QuoteMode = false; bool TokenIsString = false; while (i < aJSON.Length) { switch (aJSON [i]) { case '{': if (QuoteMode) { Token += aJSON [i]; break; } stack.Push(new JSONClass()); if (ctx != null) { TokenName = TokenName.Trim(); if (ctx is JSONArray) { ctx.Add(stack.Peek()); } else if (TokenName != "") { ctx.Add(TokenName, stack.Peek()); } } TokenName = ""; Token = ""; ctx = stack.Peek(); break; case '[': if (QuoteMode) { Token += aJSON [i]; break; } stack.Push(new JSONArray()); if (ctx != null) { TokenName = TokenName.Trim(); if (ctx is JSONArray) { ctx.Add(stack.Peek()); } else if (TokenName != "") { ctx.Add(TokenName, stack.Peek()); } } TokenName = ""; Token = ""; ctx = stack.Peek(); break; case '}': case ']': if (QuoteMode) { Token += aJSON [i]; break; } if (stack.Count == 0) { throw new Exception("JSON Parse: Too many closing brackets"); } stack.Pop(); if (Token != "") { TokenName = TokenName.Trim(); /* * if (ctx is JSONArray) * ctx.Add (Token); * else if (TokenName != "") * ctx.Add (TokenName, Token); */ AddElement(ctx, Token, TokenName, TokenIsString); TokenIsString = false; } TokenName = ""; Token = ""; if (stack.Count > 0) { ctx = stack.Peek(); } break; case ':': if (QuoteMode) { Token += aJSON [i]; break; } TokenName = Token; Token = ""; TokenIsString = false; break; case '"': QuoteMode ^= true; TokenIsString = QuoteMode == true ? true : TokenIsString; break; case ',': if (QuoteMode) { Token += aJSON [i]; break; } if (Token != "") { /* * if (ctx is JSONArray) { * ctx.Add (Token); * } else if (TokenName != "") { * ctx.Add (TokenName, Token); * } */ AddElement(ctx, Token, TokenName, TokenIsString); TokenIsString = false; } TokenName = ""; Token = ""; TokenIsString = false; break; case '\r': case '\n': break; case ' ': case '\t': if (QuoteMode) { Token += aJSON [i]; } break; case '\\': ++i; if (QuoteMode) { char C = aJSON [i]; switch (C) { case 't': Token += '\t'; break; case 'r': Token += '\r'; break; case 'n': Token += '\n'; break; case 'b': Token += '\b'; break; case 'f': Token += '\f'; break; case 'u': { string s = aJSON.Substring(i + 1, 4); Token += (char)int.Parse( s, System.Globalization.NumberStyles.AllowHexSpecifier); i += 4; break; } default: Token += C; break; } } break; default: Token += aJSON [i]; break; } ++i; } if (QuoteMode) { throw new Exception("JSON Parse: Quotation marks seems to be messed up."); } return(ctx); }
public static JSONNode Parse(string aJSON) { return(JSONNode.Parse(aJSON)); }
public JSONLazyCreator(JSONNode aNode, string aKey) { m_Node = aNode; m_Key = aKey; }
static void AddElement (JSONNode ctx, string token, string tokenName, bool tokenIsString) { if (tokenIsString) { if (ctx is JSONArray) ctx.Add (token); else ctx.Add (tokenName, token); // assume dictionary/object } else { JSONData number = Numberize (token); if (ctx is JSONArray) ctx.Add (number); else ctx.Add (tokenName, number); } }
public virtual void Add(JSONNode aItem) { Add("", aItem); }
public virtual void Add (string aKey, JSONNode aItem) { }
/// <summary> /// Updte Visual Studio Code Launch file /// </summary> static void UpdateLaunchFile(int port) { //TODO Eventually all this JSON can be replaced with intragrated JSON // Create Default Config SimpleJSON.JSONClass defaultClass = new SimpleJSON.JSONClass(); defaultClass ["name"] = "Unity"; defaultClass ["type"] = "mono"; defaultClass ["address"] = "localhost"; defaultClass ["port"].AsInt = port; defaultClass ["sourceMaps"].AsBool = false; // Create Default Node SimpleJSON.JSONNode defaultNode = new SimpleJSON.JSONClass(); defaultNode ["version"] = "0.1.0"; defaultNode ["configurations"] [-1] = defaultClass; if (!Directory.Exists(VSCode.LaunchFolder)) { System.IO.Directory.CreateDirectory(VSCode.LaunchFolder); } if (!File.Exists(VSCode.LaunchPath)) { File.WriteAllText(VSCode.LaunchPath, defaultNode.ToString()); } else { string rawContent = File.ReadAllText(VSCode.LaunchPath); SimpleJSON.JSONNode existingNode = SimpleJSON.JSON.Parse(rawContent); bool found = false; if (existingNode != null && existingNode ["configurations"] != null) { int index = 0; foreach (SimpleJSON.JSONNode conf in existingNode["configurations"].AsArray) { if (conf ["name"].Value == "Unity") { found = true; break; } index++; } if (found) { existingNode ["configurations"] [index] = defaultClass; } } if (found) { File.WriteAllText(VSCode.LaunchPath, existingNode.ToString()); } else { File.WriteAllText(VSCode.LaunchPath, defaultNode.ToString()); } } }
public override JSONNode Remove (JSONNode aNode) { m_List.Remove (aNode); return aNode; }
public JSONLazyCreator (JSONNode aNode) { m_Node = aNode; m_Key = null; }
public override void Add (string aKey, JSONNode aItem) { if (!string.IsNullOrEmpty (aKey)) { if (m_Dict.ContainsKey (aKey)) m_Dict [aKey] = aItem; else m_Dict.Add (aKey, aItem); } else m_Dict.Add (Guid.NewGuid ().ToString (), aItem); }
public JSONLazyCreator (JSONNode aNode, string aKey) { m_Node = aNode; m_Key = aKey; }
public virtual JSONNode Remove (JSONNode aNode) { return aNode; }
public virtual JSONNode Remove(JSONNode aNode) { return(aNode); }