我有一个看起来像这样的JSON:
{
"a": "foo",
"b": {
"c": "bar"
}
}
有时,b
字段不存在,如下所示:
{
"a": "foo"
}
这是我将这个JSON反序列化为:
的类public class MyObj
{
private string _a;
private MyType _b = new MyType();
[Newtonsoft.Json.JsonProperty("a",
Required = Newtonsoft.Json.Required.Always)]
public string A {
get { return _a; }
set { _a = value; }
}
[Newtonsoft.Json.JsonProperty("b",
Required = Newtonsoft.Json.Required.DisallowNull,
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public MyType B {
get { return _b; }
set { _b = value; }
}
}
在JSON中遇到丢失的b
字段时的当前行为是它只是用new MyType()
对象填充它。当JSON中缺少_b
时,我希望将null
设置为b
。
我似乎无法弄明白......但必须有办法做到这一点。救命啊!
答案 0 :(得分:1)
从评论中:简单地替换
private MyType _b = new MyType()
与private MyType;
解决了此问题。
多么令人尴尬