如何让json.net在取消集合关联时排除null

本文关键字:关联 集合 排除 null 取消 json net | 更新日期: 2023-09-27 18:21:13

我要返回的JSON可能会返回null作为值的一部分。我怎么能,或者有没有办法,从集合中排除这些null?

      {
     "id": "5551212",
     "from": {
        "name": "Message creator",
        "start_time": "2011-10-21T22:00:00",
        "end_time": "2011-10-23T17:00:00",
        "location": "area 51",
        "id": "2121212122"
     },
     "to": {
        "data": [
          {
              "name": "Jay-Z",
              "id": "77777"
           },
           {
              "name": "Bill Murray",
              "id": "88888"
           },
           null,
           {
              "name": "Anthony Hopkins",
              "id": "99999"
           }
        ]
     },
     "message": "Some message from somewhere",
     "updated_time": "2011-09-19T23:53:51+0000",
     "unread": 1,
     "unseen": 0
  }

Bill Murray和Anthony Hopkins之间的通知无效。谢谢

如何让json.net在取消集合关联时排除null

您可以简单地用装饰可以为null的属性/字段

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Name { get; set; }

有关如何减少json大小的更多信息:http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size.aspx

我会使用convert方法来获取XML字符串。

// jsonString is populated from your....
XmlNode xmlNode = JsonConvert.DeserializeXmlNode(jsonString);

XML中的空值如下所示:

...<data></data>...

其可以通过字符串替换或XML过滤来容易地去除。