【发布时间】: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 会发生什么
-
Json: pastebin.com/284rMQpG