一尘不染

如何使用json.net忽略类中的属性(如果为null)

c#

我正在使用Json.NET将类序列化为JSON。

我有这样的课:

class Test1
{
    [JsonProperty("id")]
    public string ID { get; set; }
    [JsonProperty("label")]
    public string Label { get; set; }
    [JsonProperty("url")]
    public string URL { get; set; }
    [JsonProperty("item")]
    public List<Test2> Test2List { get; set; }
}

我只想在is
JsonIgnore()Test2List属性添加属性。如果它不为null,那么我想将其包含在json中。Test2List``null


阅读 266

收藏
2020-05-19

共1个答案

一尘不染

根据James Newton
King的说法:如果您自己创建序列化程序而不是使用JavaScriptConvert,则可以设置忽略该NullValueHandling属性

这是一个示例:

JsonSerializer _jsonWriter = new JsonSerializer {
                                 NullValueHandling = NullValueHandling.Ignore
                             };

或者,按照@amit的建议

JsonConvert.SerializeObject(myObject, 
                            Newtonsoft.Json.Formatting.None, 
                            new JsonSerializerSettings { 
                                NullValueHandling = NullValueHandling.Ignore
                            });
2020-05-19