【发布时间】:2009-02-09 23:20:50
【问题描述】:
JSON 忽略任何具有空值的参数。因此,当我使用 JsonConverter.ExportToString 创建字符串时,这些属性会丢失。此外,任何具有空值的整数都将替换为 -2147483648
当我尝试反序列化此字符串时,这会成为一个问题(我正在编写自己的反序列化器,而不是使用 Json.Import)
最好的处理方法是什么?
【问题讨论】:
JSON 忽略任何具有空值的参数。因此,当我使用 JsonConverter.ExportToString 创建字符串时,这些属性会丢失。此外,任何具有空值的整数都将替换为 -2147483648
当我尝试反序列化此字符串时,这会成为一个问题(我正在编写自己的反序列化器,而不是使用 Json.Import)
最好的处理方法是什么?
【问题讨论】:
我不确定我是否理解了这个问题。 JSON 只是 javascript 的一个子集,具有 null 值的属性可以这样表示:
{"property1": 1, "property2": null}
在这种情况下,property1 是一个数字,值为 1,而property2 的值为 null。我不确定 Json.Import 和 JsonConverter.ExportToString 调用来自哪个库。无论如何,将空值分配给整数是典型的“强类型说话”。在 javascript 中,将 null 分配给数字(在 js 中没有整数之类的东西)只会使该变量不再是数字。
所以也许你应该给我们更多的上下文:使用的库,你使用数据的语言(显然不是 javascript)。
【讨论】:
您能否使用空字符串,即“”而不是 null,并使用占位符数字,例如-2147483648 表示一个空整数值?
【讨论】: