Having below classes:
[DataContract]
public class TestDynamicJSON1
{
public TestDynamicJSON1()
{
this.TO2_List = new List<TestDynamicJSON2>();
}
[DataMember]
public int A { get; set; }
[DataMember]
public string B { get; set; }
[DataMember]
public DateTime C { get; set; }
[DataMember]
public List<TestDynamicJSON2> TO2_List { get; set; }
}
[DataContract]
public class TestDynamicJSON2
{
public TestDynamicJSON2()
{
}
[DataMember]
public int A2 { get; set; }
[DataMember]
public string B2 { get; set; }
[DataMember]
public DateTime C2 { get; set; }
}
[DataContract]
public class TestDynamicJSON2_1 : TestDynamicJSON2
{
public TestDynamicJSON2_1()
{
}
}
[DataContract]
public class TestDynamicJSON2_2 : TestDynamicJSON2
{
public TestDynamicJSON2_2()
{
}
}
[DataContract]
public class TestDynamicJSON2_3 : TestDynamicJSON2
{
public TestDynamicJSON2_3()
{
}
}
At server side converting objects into JObject:
public JObject GetDynamicJO()
{
TestDynamicJSON1 TO = new Metadata.CatalogManagement.TestDynamicJSON1();
TO.A = 1;
TO.B = "2";
TO.C = DateTime.Now;
TestDynamicJSON2_1 TO2_1 = new Metadata.CatalogManagement.TestDynamicJSON2_1();
TO2_1.A2 = 11;
TO2_1.B2 = "22";
TO2_1.C2 = DateTime.Now;
TO.TO2_List.Add(TO2_1);
TestDynamicJSON2_2 TO2_2 = new Metadata.CatalogManagement.TestDynamicJSON2_2();
TO2_2.A2 = 11;
TO2_2.B2 = "22";
TO2_2.C2 = DateTime.Now;
TO.TO2_List.Add(TO2_2);
TestDynamicJSON2_3 TO2_3 = new Metadata.CatalogManagement.TestDynamicJSON2_3();
TO2_3.A2 = 11;
TO2_3.B2 = "22";
TO2_3.C2 = DateTime.Now;
TO.TO2_List.Add(TO2_3);
JProperty property1 = new JProperty("DO", JToken.FromObject(TO));
JObject jo = new JObject(property1);
return jo;
}
At client side trying to deserialize:
var str = await response1.Content.ReadAsStringAsync();
var jo = JsonConvert.DeserializeObject<TestDynamicJSON1>(str);
Json string is as below:
{"DO":{"A":1,"B":"2","C":"2015-12-24T19:42:51.6509893+04:00","TO2_List":[{"A2":11,"B2":"22","C2":"2015-12-24T19:42:51.6509893+04:00"},{"A2":11,"B2":"22","C2":"2015-12-24T19:42:51.6509893+04:00"},{"A2":11,"B2":"22","C2":"2015-12-24T19:42:51.6509893+04:00"}]}}
And the list TO2_List property is empty. Is it because of it is list of BaseClass?
Could you pls help on this?
Thanks.