如何使用多態性將派生類序列化為JSON

如果我有以下課程:

public class ParentClass
{
    public int ParentProperty { get; set; } = 0;
}
public class ChildClass : ParentClass
{
    public string ChildProperty { get; set; } = "Child property";
}
public class Container
{
    public double ContainerCapacity { get; set; } = 0.2;
    public List<ParentClass> ClassContainer { get; set; } = new List<ParentClass>();
}

如果我在Program.cs中創建以下對象:

// Objects
var container = new Container() { ContainerCapacity = 3.14 };
var parent = new ParentClass() { ParentProperty = 5 };
var child = new ChildClass() { ParentProperty = 10, ChildProperty = "value" };
container.ClassContainer.Add(parent);
container.ClassContainer.Add(child);

// Serialization
var serializerOptions = new JsonSerializerOptions() { WriteIndented = true };
var containerJson = JsonSerializer.Serialize(container, serializerOptions);
Console.WriteLine(containerJson);

Expected output:

{
  "ContainerCapacity": 3.14,
  "ClassContainer": [
    {
      "ParentProperty": 5
    },
    {
      "ChildProperty": "value",
      "ParentProperty": 10
    }
  ]
}

Actual output:

{
  "ContainerCapacity": 3.14,
  "ClassContainer": [
    {
      "ParentProperty": 5
    },
    {
      "ParentProperty": 10
    }
  ]
}

如何確保child上的屬性ChildProperty也被序列化?對于接口多態性,我該怎么做呢?

? 最佳回答:

我在網上看到了關于這個問題,似乎不太容易做到。我建議使用Newtonsoft.Json庫來解析對象,因為它是一個成熟的庫,可以完美地處理child-parent對象,而無需編寫自定義設置的開銷。

Newtonsoft.Json安裝numet包,然后按如下方式進行解析:

var containerJson = JsonConvert.SerializeObject(container, Newtonsoft.Json.Formatting.Indented);

其輸出如下:

{
  "ContainerCapacity": 3.14,
  "ClassContainer": [
    {
      "ParentProperty": 5
    },
    {
      "ChildProperty": "value",
      "ParentProperty": 10
    }
  ]
}
主站蜘蛛池模板: 国产一区二区精品久久凹凸| 亚洲欧美成人一区二区三区| 中文字幕一区二区三区在线观看| 国产免费av一区二区三区| 精品少妇一区二区三区在线| 国产精品视频无圣光一区| 亚洲国产福利精品一区二区| 亚洲老妈激情一区二区三区| 亚洲AⅤ无码一区二区三区在线| 交换国产精品视频一区| 69福利视频一区二区| 国偷自产一区二区免费视频| 久久国产精品一区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 在线观看精品一区| 国产日韩精品视频一区二区三区| 高清国产AV一区二区三区| 国产成人一区二区三区在线| 国产天堂一区二区综合| 国产不卡视频一区二区三区| 一区二区三区四区视频在线| 乱人伦一区二区三区| 国产精品亚洲高清一区二区| 国产激情一区二区三区四区| 成人精品一区二区三区电影| 国模吧一区二区三区精品视频| 在线精品一区二区三区电影| 精品国产一区二区三区www| 韩国精品一区视频在线播放| 国产在线观看一区二区三区| 精品一区二区三区免费毛片| 色综合视频一区二区三区| 日韩精品一区二区三区在线观看| 亚洲片一区二区三区| 韩国福利一区二区三区高清视频| 好看的电影网站亚洲一区| 中文字幕在线看视频一区二区三区| 日韩一区二区超清视频| 春暖花开亚洲性无区一区二区| 日韩一区二区三区视频久久| 台湾无码AV一区二区三区|