public void JTokenToStringPressedTest() { JNumber n = new JNumber(7.3); JNumber n2 = new JNumber(42); JNumber n3 = new JNumber(3.14); JString s = new JString("example"); JBool b = new JBool(true); JNull nu = new JNull(); JArray aa = new JArray(); JToken root = new JToken(); JToken t = new JToken(); JToken tt = new JToken(); JRoot r = new JRoot(); r["mnau"] = root; root["dalsi cislo"] = n; root["token"] = t; t["inside"] = aa; t["string"] = s; aa.Add(n2); aa.Add(b); aa.Add(tt); tt["cislo"] = n3; tt["nil"] = (nu); try { aa.Add(nu); } catch (JsonDuplicatedException e) { Console.WriteLine("zkusili jsme pridat podruhe"); } Console.WriteLine(root.ToStringPressed()); Console.WriteLine(root.ToString()); Console.WriteLine(r.ToStringPressed()); Console.WriteLine(r.ToString()); }
public void JArrayToStringTest() { JArray a = new JArray(); JNumber n = new JNumber(42); JNumber n2 = new JNumber(7.3); JString s = new JString("pokus"); JString s2 = new JString("pokus2"); JBool b = new JBool(true); JBool b2 = new JBool(false); JNull nu = new JNull(); JNull nu2 = new JNull(); JNull nu3 = new JNull(); JToken t = new JToken(); JRoot root = new JRoot(); root["pole"] = a; a.Add(n); a.Add(s); a.Add(b); a.Add(nu); a.Add(t); t["string"] = s2; t["nill"] = nu2; t["cislo"] = n2; Console.WriteLine(a.ToString()); JArray aa = new JArray(); a.Add(aa); aa.Add(nu3); aa.Add(b2); Console.WriteLine(a.ToString()); }
public void CreateJSONTest() { JRoot root = new JRoot(); JKeyValuePair mathTest = new JKeyValuePair(new JString("Math Test"), null, root); JArray testResultArray = new JArray(mathTest); testResultArray.Add( CreateNewStudentTestResult(testResultArray, ("Ivan"), ("Ivanov")), CreateNewStudentTestResult(testResultArray, ("Pyotr"), ("Petrov")), CreateNewStudentTestResult(testResultArray, ("Vasily"), ("Vasilyev")), CreateNewStudentTestResult(testResultArray, ("Maria"), ("Marieva")), CreateNewStudentTestResult(testResultArray, ("Pavel"), ("Pavlov")), CreateNewStudentTestResult(testResultArray, ("Roman"), ("Romanov")), CreateNewStudentTestResult(testResultArray, ("Boris"), ("Borisov")), CreateNewStudentTestResult(testResultArray, ("Ulya"), ("Ulyeva")), CreateNewStudentTestResult(testResultArray, ("Danil"), ("Danilov")), CreateNewStudentTestResult(testResultArray, ("Nikolay"), ("Nikolaev")), CreateNewStudentTestResult(testResultArray, ("Bela"), ("Belova")), CreateNewStudentTestResult(testResultArray, ("Grigory"), ("Gregoriev")) ); mathTest.Value = testResultArray; root.Add(mathTest); bool saved = root.ToFile("MathTest.json"); if (File.Exists("MathTest.json")) { Process.Start("notepad.exe", "MathTest.json"); } Assert.IsTrue(File.Exists("MathTest.json")); }
internal static JArray GetJRoot(string key) { try { if (JRoot.ContainsKey(key)) { return((JArray)JRoot[key]); } return(new JArray()); } catch (Exception e) { Utils.Log.Error(e); return(new JArray()); } }
public DataType GetObject(string Token, TokenParameters TokenParams, out object Obj) { string[] FullName = Token.Split('.'); Obj = Data; if (FullName.Length == 1 & FullName[0].StartsWith("$")) { return(GetSpecialObject(FullName[0], out Obj)); } for (int i = 0; i < FullName.Length; i++) { if (FullName[i].StartsWith("$")) { WordTable CurTable = WordTableContext.GetCurrent(); string TableToken = string.Join(".", FullName.Take(i).ToArray()); WordTable.Column Col = CurTable.GetCurrentColumn(); Col.Identifier = FullName[i].Substring(1); //Col.RefArrayToken = TableToken; DataType TableTokenDataType = GetObject(TableToken, TokenParams, out object _Obj); if (_Obj is JArray TableObj) { JToken ColumnDefinition = TableObj[0][Col.Identifier]; Col.RefArray = TableObj; Col.Text = ColumnDefinition["text"].Value <string>(); Col.Style = ColumnDefinition["style"].Value <string>(); } else { throw new Exception(string.Format("Expected array, got '{0}' for token '{1}'", TableTokenDataType, TableToken)); } Obj = Col.Text; return(DataType.String); } if (Obj is JObject JRoot) { JToken JToken = JRoot.GetValue(FullName[i]); if (JToken == null) { Obj = null; } else if (JToken is JValue JValue) { Obj = JValue.Value; } else if (JToken is JObject) { Obj = JToken.Value <JObject>(); } else if (JToken is JArray) { Obj = JToken.Value <JArray>(); } else { throw new NotImplementedException(); } } else { string Cur = string.Join(".", FullName.Take(i).ToArray()); throw new Exception(string.Format("Could not find value for token '{0}', got '{1}' of value '{2}'", Token, Cur, Obj)); } } if (Obj == null) { if (TokenParams != null && TokenParams.Defined("null")) { Obj = TokenParams.Get <string>("null"); return(DataType.String); } return(DataType.None); } else if (Obj is JObject JObject) { if (JObject.TryGetValue("__type", out JToken TypeToken) && JObject.TryGetValue("__data", out JToken DataToken)) { Obj = new EmbeddedData(TypeToken, DataToken); return(DataType.EmbeddedData); } return(DataType.Object); } else if (Obj is JArray) { return(DataType.Array); } else if (Obj is string RootStr) { // TODO: Fix eventually Obj = RootStr.Trim().Replace("\r", "").Replace("\n", " ").Replace("\t", " "); /*if (RootStr.Contains("\n")) * Debugger.Break();*/ return(DataType.String); } else { throw new NotImplementedException(); } }