Newtonsoft.JSON 忽略父属性 属性 但序列化子属性

Newtonsoft.JSON Ignore parent property but serialize child properties

我尝试序列化以下 json 数据结构,如图所示,某些字段使用了 guid。理想情况下,我想在序列化期间忽略这些,但我仍然希望能够序列化这些对象的子属性(published_show_time 等)。我想在数组中创建它们,因为每条记录都是一个单独的条目。有没有办法使用 Newtonsoft JSON 库来执行此操作,或者我是否需要创建自定义 Json 转换器?

{
    "data": {
        "019765d6-9e37-474c-b53b-ddb24c8c5fc8": {
            "published_show_time": null,
            "preshow_duration": 1131.5033333333,
            "content_issue": false,
            "has_intermission": false,
        },
        "6ac935d2-bca8-4c4d-8c39-2cb9f17ee0be": {
            "published_show_time": null,
            "preshow_duration": 10.0,
            "content_issue": false,
            "has_intermission": false,
        }
    }
}

我想到的唯一解决方案是使用转换器。您也可以使用 LINQ to JSON,但我不建议这样做

您可以将 Json 序列化为字典结构

class MyJson
{
    [JsonProperty("data")]
    public Dictionary<string,MyData> Data {get;set;}
}

class MyData
{
   [JsonProperty("published_show_time")]
   public string  PublishedShowTime {get;set;}
   ......//preshow_duration..and more
}

然后你可以将这个 class 序列化为:

 var data =JsonConvert.SerializeObject(new MyJson(){ ... });