public void ExtensionDataTest() { string json = @"{ ""Ints"": [1,2,3], ""Ignored"": [1,2,3], ""Readonly"": ""Readonly"", ""Name"": ""Actually set!"", ""CustomName"": ""Wrong name!"", ""GetPrivate"": true, ""GetOnly"": true, ""NewValueSimple"": true, ""NewValueComplex"": [1,2,3] }"; ExtensionDataTestClass c = JsonConvert.DeserializeObject <ExtensionDataTestClass>(json); Assert.AreEqual("Actually set!", c.Name); Assert.AreEqual(4, c.Ints.Count); Assert.AreEqual("Readonly", (string)c.ExtensionData["Readonly"]); Assert.AreEqual("Wrong name!", (string)c.ExtensionData["CustomName"]); Assert.AreEqual(true, (bool)c.ExtensionData["GetPrivate"]); Assert.AreEqual(true, (bool)c.ExtensionData["GetOnly"]); Assert.AreEqual(true, (bool)c.ExtensionData["NewValueSimple"]); Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["NewValueComplex"])); Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["Ignored"])); Assert.AreEqual(7, c.ExtensionData.Count); }
public void Test() { ExtensionDataTestClass a = JsonConvert.DeserializeObject <ExtensionDataTestClass>("{\"E\":null}", new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, }); Assert.IsNull(a.PropertyBag); }
public void ExtensionDataTest_SerializeWithNamingStrategy_Enabled() { ExtensionDataTestClass c = new ExtensionDataTestClass() { ExtensionData = new Dictionary <string, JToken> { ["TestValue1"] = 1, ["alreadyCamelCase"] = new JObject { ["NotProcessed"] = true } } }; string json = JsonConvert.SerializeObject( c, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy { ProcessExtensionDataNames = true } }, Formatting = Formatting.Indented } ); StringAssert.AreEqual( @"{ ""readonly"": ""Readonly"", ""name"": null, ""custom_name"": null, ""getPrivate"": false, ""getOnly"": true, ""ints"": [ 0 ], ""testValue1"": 1, ""alreadyCamelCase"": { ""NotProcessed"": true } }", json ); }
public void ExtensionDataTest_DeserializeWithNamingStrategy() { string json = @"{ ""Ints"": [1,2,3], ""Ignored"": [1,2,3], ""Readonly"": ""Readonly"", ""Name"": ""Actually set!"", ""CustomName"": ""Wrong name!"", ""GetPrivate"": true, ""GetOnly"": true, ""NewValueSimple"": true, ""NewValueComplex"": [1,2,3] }"; ExtensionDataTestClass c = JsonConvert.DeserializeObject <ExtensionDataTestClass>( json, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy { ProcessExtensionDataNames = true } } } ); Assert.AreEqual("Actually set!", c.Name); Assert.AreEqual(4, c.Ints.Count); Assert.AreEqual("Readonly", (string)c.ExtensionData["Readonly"]); Assert.AreEqual("Wrong name!", (string)c.ExtensionData["CustomName"]); Assert.AreEqual(true, (bool)c.ExtensionData["GetPrivate"]); Assert.AreEqual(true, (bool)c.ExtensionData["GetOnly"]); Assert.AreEqual(true, (bool)c.ExtensionData["NewValueSimple"]); Assert.IsTrue( JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["NewValueComplex"]) ); Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["Ignored"])); Assert.AreEqual(7, c.ExtensionData.Count); }