public void RootClass_TestPerson() { var date = new DateTime(1981, 12, 01, 14, 23, 20, DateTimeKind.Utc); var data = new TestPerson { Name = "Gagarin", DOB = date, Assets = 1000000, IsRegistered = true, Luck = 0.02312, Respect = PersonRespect.Guru }; var json = JW.Write(data); Console.WriteLine(json); Assert.AreEqual("{\"Assets\":1000000,\"DOB\":\"1981-12-01T14:23:20Z\",\"IsRegistered\":true,\"Luck\":0.02312,\"Name\":\"Gagarin\",\"Respect\":\"Guru\"}", json); }
public void RootList_object_withDates() { var date = new DateTime(1981, 12, 01, 14, 23, 20, DateTimeKind.Utc); var lst = new List <object> { -2, "yes", date }; var json = JW.Write(lst); Console.WriteLine(json); Assert.AreEqual("[-2,\"yes\",\"1981-12-01T14:23:20Z\"]", json); }
public void CyclicalGraphWithIndirectList() { var lst = new List <object>(); lst.Add(1); lst.Add(-2); lst.Add(new List <object> { 1, 2, 3, 4, 5, 6, lst, 1 }); var json = JW.Write(lst); Console.WriteLine(json); }
public void Dynamic1() { dynamic dob = new JDO(NFX.Serialization.JSON.JSONDynamicObjectKind.Map); dob.FirstName = "Serge"; dob.LastName = "Rachmaninoff"; dob["Middle Name"] = "V"; var json = JW.Write(dob); Console.WriteLine(json); Aver.AreEqual("{\"FirstName\":\"Serge\",\"LastName\":\"Rachmaninoff\",\"Middle Name\":\"V\"}", json); }
public void Dynamic2_withList() { dynamic dob = new JDO(NFX.Serialization.JSON.JSONDynamicObjectKind.Map); dob.FirstName = "Al"; dob.LastName = "Kutz"; dob.Autos = new List <string> { "Buick", "Chevy", "Mazda", "Oka" }; var json = JW.Write(dob); Console.WriteLine(json); Aver.AreEqual("{\"FirstName\":\"Al\",\"LastName\":\"Kutz\",\"Autos\":[\"Buick\",\"Chevy\",\"Mazda\",\"Oka\"]}", json); }
private void serializeBenchmark(string name, object data) { var sw = Stopwatch.StartNew(); for (var i = 0; i < BENCHMARK_ITERATIONS; i++) { //Console.WriteLine( JW.Write(data) ); JW.Write(data); } var nfxTime = sw.ElapsedMilliseconds; //---DataContractJsonSerializer var dcs = new DataContractJsonSerializer(data.GetType()); sw = Stopwatch.StartNew(); var ms = new MemoryStream(); var dcsTime = long.MaxValue; try { for (var i = 0; i < BENCHMARK_ITERATIONS; i++) { dcs.WriteObject(ms, data); // Console.WriteLine( Encoding.Default.GetString(ms.ToArray())); // throw new Exception(); ms.Position = 0; } dcsTime = sw.ElapsedMilliseconds; } catch (Exception error) { Console.WriteLine("DataContractJSONSerializer does not support this test case: " + error.ToMessageWithType()); } var _nfx = BENCHMARK_ITERATIONS / (nfxTime / 1000d); var _dcs = BENCHMARK_ITERATIONS / (dcsTime / 1000d); Console.WriteLine( @"Serialize.{0} NFX: {1} op/sec MS DataContractSer: {2} op/sec Ratio NFX/DC: {3} ".Args(name, _nfx, _dcs, _nfx / _dcs)); }
public void RootDictionaryWithLists_object() { var lst = new Dictionary <object, object> { { "Important", true }, { "Patient", new Dictionary <string, object> { { "LastName", "Kozloff" }, { "FirstName", "Alexander" }, { "Occupation", "Idiot" } } }, { "Salaries", new List <object> { 30000, 78000, 125000, 4000000 } }, { "Cars", new List <object> { "Buick", "Ferrari", "Lada", new Dictionary <string, object> { { "Make", "Zaporozhets" }, { "Model", "Gorbatiy" }, { "Year", 1971 } } } }, }; var json = JW.Write(lst, JSONWritingOptions.PrettyPrint); Console.WriteLine(json); var expected = @" { ""Important"": true, ""Patient"": { ""LastName"": ""Kozloff"", ""FirstName"": ""Alexander"", ""Occupation"": ""Idiot"" }, ""Salaries"": [30000, 78000, 125000, 4000000], ""Cars"": [""Buick"", ""Ferrari"", ""Lada"", { ""Make"": ""Zaporozhets"", ""Model"": ""Gorbatiy"", ""Year"": 1971 }] }"; Console.WriteLine("-----------------------------------"); Console.WriteLine(expected); Aver.AreEqual(expected, json); }
public void StringEscapes_2_ASCII_NON_ASCII_Targets() { var lst = new List <object> { "Hello\n\rDolly!", "Главное за сутки" }; var json = JW.Write(lst, JSONWritingOptions.CompactASCII); Console.WriteLine(json); Aver.AreEqual("[\"Hello\\n\\rDolly!\",\"\\u0413\\u043b\\u0430\\u0432\\u043d\\u043e\\u0435 \\u0437\\u0430 \\u0441\\u0443\\u0442\\u043a\\u0438\"]", json); json = JW.Write(lst, JSONWritingOptions.Compact); Console.WriteLine(json); Aver.AreEqual("[\"Hello\\n\\rDolly!\",\"Главное за сутки\"]", json); }
public void Dynamic3_WriteRead() { dynamic dob = new JDO(NFX.Serialization.JSON.JSONDynamicObjectKind.Map); dob.FirstName = "Al"; dob.LastName = "Kutz"; dob.Autos = new List <string> { "Buick", "Chevy", "Mazda", "Oka" }; string json = JW.Write(dob); var dob2 = json.JSONToDynamic(); Aver.AreEqual(dob2.FirstName, dob.FirstName); Aver.AreEqual(dob2.LastName, dob.LastName); Aver.AreEqual(dob2.Autos.Count, dob.Autos.Count); }
public void Options_RowMapTargetName() { var row = new OptRow { ID = "id123", LongName = "Long string", Hidden = "Cant see" }; var json = JW.Write(row, new JSONWritingOptions { RowsAsMap = true, RowMapTargetName = "AAA" }); var map = JSONReader.DeserializeDataObject(json) as JSONDataMap; Aver.IsNotNull(map); Aver.AreEqual(2, map.Count); Aver.AreEqual("id123", map["ID"].AsString().AsString()); Aver.AreEqual("Long string", map["aln"].AsString()); json = JW.Write(row, new JSONWritingOptions { RowsAsMap = true, RowMapTargetName = "BBB" }); map = JSONReader.DeserializeDataObject(json) as JSONDataMap; Aver.IsNotNull(map); Aver.AreEqual(3, map.Count); Aver.AreEqual("id123", map["ID"].AsString()); Aver.AreEqual("Long string", map["bln"].AsString()); Aver.AreEqual("Cant see", map["Hidden"].AsString()); json = JW.Write(row, new JSONWritingOptions { RowsAsMap = true }); map = JSONReader.DeserializeDataObject(json) as JSONDataMap; Aver.IsNotNull(map); Aver.AreEqual(3, map.Count); Aver.AreEqual("id123", map["ID"].AsString()); Aver.AreEqual("Long string", map["LongName"].AsString()); Aver.AreEqual("Cant see", map["Hidden"].AsString()); }
/// <summary> /// Serializes object into JSON format using provided stream and optional encoding /// </summary> public static void ToJSON(this object root, Stream stream, Serialization.JSON.JSONWritingOptions options = null, Encoding encoding = null) { JSONWriter.Write(root, stream, options, encoding); }
/// <summary> /// Serializes object into JSON format using provided TextWriter /// </summary> public static void ToJSON(this object root, TextWriter wri, Serialization.JSON.JSONWritingOptions options = null) { JSONWriter.Write(root, wri, options); }
/// <summary> /// Serializes object into JSON string /// </summary> public static string ToJSON(this object root, Serialization.JSON.JSONWritingOptions options = null) { return(JSONWriter.Write(root, options)); }
public override string ToString() { return JSONWriter.Write(this, JSONWritingOptions.Compact); }