我正在使用 Json.net,我得到了一个类如下
public class RecordAlias
{
[JsonProperty(PropertyName = "eId", Required = Required.Always)]
public string EntityId { get; set; }
[JsonProperty(PropertyName = "aId", Required = Required.AllowNull)]
public string AliasId { get; set; }
[JsonProperty(PropertyName = "iSd", Required = Required.AllowNull)]
public bool IsSelected { get; set; }
}
因此,即使某些项目在 json 字符串中没有属性“iSd”,也可以反序列化以下 json,我希望如果不存在该类型的默认值,则应填充该默认值,例如,除最后一项外,IsSelected 应该为 false
[{
"eId" : "30022004",
"aId" : "1"
}, {
"eId" : "30021841",
"aId" : "1"
}, {
"eId" : "30021848",
"aId" : "1"
"iSd" : true
}
]
知道我怎样才能实现这个目标吗?
你没有指定eId
在您的 JSON 字符串中,并且它被设置为必需的。你正在路过rId
……这是同一个东西吗?
如果我不明白这个问题,请告诉我,我会更新我的答案。
UPDATE:
你正在表明iSd
财产是AllowNull
。您仍然需要在 JSON 字符串中指定此属性的值,但它可以为 null。根据 JSON.NETspecs http://james.newtonking.com/projects/json/help/:
该属性必须在 JSON 中定义,但可以为空值。
您需要指定一个值iSd
...或标记iSd
在你的JsonProperty
属性为DefaultValue
. For DefaultValue
, the spec http://james.newtonking.com/projects/json/help/ says:
该属性不是必需的。默认状态。
[JsonProperty(PropertyName = "iSd", Required = Required.Default)]
public bool IsSelected { get; set; }
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)