Not the entire structure is converted to JSON
unkprog opened this issue · 0 comments
unkprog commented
Example:
[DataContract]
public class BaseModel
{
public BaseModel()
{
Name = "BaseModel";
}
[DataMember]
public string Name { get; set; }
}
[DataContract]
public class OneModel :BaseModel
{
public OneModel()
{
Name = "OneModel";
}
public List<BaseModel> OneItems { get; set; } = new List<BaseModel>(new BaseModel[] { new BaseModel() { Name = "One" }, new BaseModel() { Name = "Two" } });
}
[DataContract]
public class TwoModel : OneModel
{
public TwoModel()
{
Name = "TwoModel";
}
[DataMember]
public List<BaseModel> Items { get; set; } = new List<BaseModel>(new BaseModel[] { new BaseModel() { Name = "One BaseModel" }, new OneModel() { Name = "Two OneModel" } });
}
Converting to JSON
string jsonString = System.Text.Encoding.UTF8.GetString(JsonSerializer.Serialize(new TwoModel(), Utf8Json.Resolvers.StandardResolver.Default));
System.Console.WriteLine(jsonString);
We get the following:
{
"Name":"TwoModel",
"Items":[
{"Name":"One BaseModel"},{"Name":"Two OneModel"}
],
"OneItems":[{"Name":"One"},{"Name":"Two"}]
}
and it should be the following JSON:
{
"Name":"TwoModel",
"Items":[
{"Name":"One BaseModel"},
{
"Name":"Two OneModel",
"OneItems":[{"Name":"One"},{"Name":"Two"}]
}
],
"OneItems":[{"Name":"One"},{"Name":"Two"}]
}