public void TestReflection() { ExampleOuter o1 = CreateExample(); string s1 = new SLJsonSerializer().Serialize(o1); var d = new SLJsonDeserializer(); ExampleOuter o2 = d.Deserialize <ExampleOuter>(s1); CompareSomeFields(o1, o2); Assert.AreEqual(2.345f, o1.RetrievePrivateValue()); Assert.AreEqual(0, o2.RetrievePrivateValue()); string s2 = new SLJsonSerializer().Serialize(o2); Assert.AreEqual(s1, s2); SLJsonNode n1 = SLJsonParser.Parse(s1); SLJsonNode n2 = n1.Clone(); SLJsonNode n3 = SLJsonParser.Parse(n2.AsJson); SLJsonNode n4 = SLJsonParser.Parse(n3.AsJsonCompact); Assert.IsTrue(n1 != n2); CompareNodes(n1, n1); CompareNodes(n1, n2); CompareNodes(n1, n3); CompareNodes(n1, n4); }
public void TesReflectionWithConverter1() { var ser = new SLJsonSerializer(); const string prefix = "prefix: "; ser.RegisterConverter <DateTime>(x => prefix + x.ToString(@"yyyy\-MM\-dd HH\:mm\:ss", CultureInfo.InvariantCulture)); var o1 = new ExampleOuter(); o1.PropertyDateTime = new DateTime(1950, 7, 20, 12, 34, 56); string s = ser.Serialize(o1); Assert.IsTrue(s.Contains(prefix + o1.PropertyDateTime.ToString(@"yyyy\-MM\-dd HH\:mm\:ss", CultureInfo.InvariantCulture))); var des = new SLJsonDeserializer(); des.RegisterConverter <DateTime>(x => { string z = x.Substring(x.IndexOf(prefix) + prefix.Length); return(DateTime.Parse(z, CultureInfo.InvariantCulture)); }); var o2 = des.Deserialize <ExampleOuter>(s); Assert.AreEqual(o1.PropertyDateTime, o2.PropertyDateTime); }
static void TestStringConversion(SLJsonSerializer serializer, string expectedValue) { var o1 = new ExampleOuter(); string s = serializer.Serialize(o1); var o2 = new SLJsonDeserializer().Deserialize <ExampleOuter>(s); Assert.AreEqual(expectedValue, o2.ValueString); }
public void TesReflectionWithConverter2() { var ser = new SLJsonSerializer(); TestStringConversion(ser, null); ser.RegisterConverter <string>(x => x ?? string.Empty); TestStringConversion(ser, string.Empty); ser.RegisterConverter <string>(x => x ?? "empty"); TestStringConversion(ser, "empty"); }
public void TestObsoleteSerializeObject2() { ExampleOuter o1 = CreateExample(); var ser = new SLJsonSerializer(); #pragma warning disable 618 // Disable obsolete warning SLJsonWriter wr = ser.SerializeObject(o1); string s1 = ser.ToString(); #pragma warning restore 618 string s2 = wr.ToString(); Assert.AreEqual(s1, s2); var o2 = new SLJsonDeserializer().Deserialize <ExampleOuter>(s1); CompareSomeFields(o1, o2); }