我为反序列化创建的模型说,
public void onItemSelected(AdapterView parent, View view, int position, long id) {
p1.setSelection(position);
}
现在只有当我的JSONstring包含两个字段,即
时,这才有效class Object
{
public string prop1 {get; set}
public string prop2 {get; set}
}
但如果我只有一个JSON属性,那么这将失败,即
{
"prop1" : "value prop1",
"prop2" : "value prop2"
}
如何在缺少属性时进行反序列化并使其成为选项。
答案 0 :(得分:0)
您可以选择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;
答案 1 :(得分:0)
此代码按原样工作(设置后缺少分号)。
如果您想在这种情况下出现错误,请使用
[JsonProperty(Required = Required.Always)]
或[JsonProperty(Required = Required.DisallowNull)]