忽略使用Newtonsoft的避难所化的丢失字段



我创建了用于避难的模型,

class Object 
{
     public string prop1 {get; set}
     public string prop2 {get; set}
}

现在,只有当我的jsonstring都包含两个字段,即

时,这才能起作用。
{
    "prop1" : "value prop1",
    "prop2" : "value prop2"
}

,如果我在JSON中只有一个属性,即

,这将失败
{
    "prop1" : "value1"
}

当缺少属性并将其做出选项时,我该如何进行。

您可以选择Dynamic

dynamic stuff = JsonConvert.DeserializeObject("{"prop1" : "value prop1","prop2" : "value prop2"}");
string p1 = stuff.prop1;
string p2 = stuff.prop2;

Newtonsoft.Json.Linq

dynamic stuff = JObject.Parse("{"prop1" : "value1"}");
string p1 = stuff.prop1;

此代码正常运行(除了集合后缺少半洛龙)。

另一方面,如果您愿意在这种情况下有错误,请使用

[JsonProperty(Required = Required.Always)][JsonProperty(Required = Required.DisallowNull)]

相关内容

  • 没有找到相关文章

最新更新