【问题标题】:How to ignore null fields in json serialization (Newtonsoft.Json)?如何忽略 json 序列化(Newtonsoft.Json)中的空字段?
【发布时间】:2020-04-30 14:59:31
【问题描述】:

我有一个对象,它包含多个 iList、iDictionary 实例和包含一些原语的对象。我有这段代码不包含空值,但它不适用于 iDictionary。只有当对象很大时才会出现问题。

    tw.Write(JsonConvert.SerializeObject(ic, Formatting.None,
    new JsonSerializerSettings
    {
        NullValueHandling = NullValueHandling.Ignore
    }));

对象

IC
 Header
  int
  string (can be null)
  string
 IList<Component>
  int
  string
  double
  double
  IList<Input>
   int
   int
   int
  IDictionary<string,object> (freqently null, always serialized)
 IDictionary<string,IC> (can be null, always serialized)

json的相关部分

 {
  "HEADER": {
    "TAG": "PROJECT",
    "APP_VERSION": 91
  },
  "COMPONENTS": [
   {
    "ID": 34509537,
    "TAG": "BUFFER_GATE",
    "X": 870.0,
    "Y": 450.0,
    "INPUTS": [
     {
      "CONNECTOR_ID": 0,
      "OTHER_COMPONENT": 33017225,
      "OTHER_CONNECTOR_ID": 47
    }
  ],
  "ARGUMENTS": null
},...

【问题讨论】:

  • 您的意思是字典本身为空,还是字典中存在您不想序列化的具有空值的条目?
  • 字典本身。
  • 你能举个json的例子吗?
  • 如果您将 IC 更改为仅包含一个 IDictionary 会发生什么

标签: c# json.net


【解决方案1】:

我删除了文件并重新创建了它,而不是覆盖它。源对象完全相同。我可能没有正确覆盖文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2021-10-27
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多