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

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

我在用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; }}

我想添加一个JsonIgnore()属性为Test2List属性仅在Test2Listnull..如果它不是空的,那么我想将它包含在我的json中。


一只萌萌小番薯
浏览 1726回答 3
3回答

慕标琳琳

正如JamesNewtonKing所述:如果您自己创建序列化程序,而不是使用JavaScriptConvert,则有一个NullValueHandling财产你可以设置为忽略。这是一个样本:JsonSerializer&nbsp;_jsonWriter&nbsp;=&nbsp;new&nbsp;JsonSerializer&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NullValueHandling&nbsp;=&nbsp;NullValueHandling.Ignore &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};或者,正如@Amit建议的那样JsonConvert.SerializeObject(myObject,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Newtonsoft.Json.Formatting.None,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;JsonSerializerSettings&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NullValueHandling&nbsp;=&nbsp;NullValueHandling.Ignore &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});

长风秋雁

使用JsonProperty属性:[JsonProperty(NullValueHandling=NullValueHandling.Ignore)]//&nbsp;or[JsonProperty("property_name",&nbsp;NullValueHandling=NullValueHandling.Ignore)] //&nbsp;or&nbsp;for&nbsp;all&nbsp;properties&nbsp;in&nbsp;a&nbsp;class[JsonObject(ItemNullValueHandling&nbsp;=&nbsp;NullValueHandling.Ignore)]如图所示这个在线医生.
打开App,查看更多内容
随时随地看视频慕课网APP