Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
 /// <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);
 }
Beispiel #12
0
 /// <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);
 }
Beispiel #13
0
 /// <summary>
 ///  Serializes object into JSON string
 /// </summary>
 public static string ToJSON(this object root, Serialization.JSON.JSONWritingOptions options = null)
 {
     return(JSONWriter.Write(root, options));
 }
Beispiel #14
0
 public override string ToString()
 {
   return JSONWriter.Write(this, JSONWritingOptions.Compact);
 }