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(){ ... });
我尝试序列化以下 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(){ ... });