我有一个如下所示的 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
时,我希望将 _b
设置为 null
。
虽然我似乎无法弄清楚...必须有办法做到这一点。帮助!
来自评论:简单地替换private MyType _b = new MyType()
和 private MyType;
解决了这个问题。
好尴尬
我是一名优秀的程序员,十分优秀!