我有一个类似的JSON响应
{
car:100,
house:200,
bike:300
}
但有时有些属性并没有得到响应。像这样(房子不见了)
{
car:100,
bike:300
}
我正在使用JsonConvert.DeserializeObject<Test>(json);
进行反序列化
使用这个测试模型
[JsonObject(MemberSerialization.OptIn)]
public class Test
{
[JsonProperty(PropertyName = "car")]
public int Car{ get; set; }
[JsonProperty(PropertyName = "house")]
public int House{ get; set; }
[JsonProperty(PropertyName = "bike")]
public int Bike{ get; set; }
}
现在的问题是:在第二个例子中,在缺少house的地方,我仍然在进行对象测试,以将propery house设置为0。
有任何方法可以使这个属性可选,我希望我的模型没有丢失的属性。
其他想法当我写这篇文章的时候,我想也许这根本没有任何意义,也许模型就是为什么它在不同的情况下应该不同的"模型"。。可能是错误的。
任何答案都会被大大否定。感谢
int
的默认值为0。如果House
是可选的,则使其可以为null。
[JsonProperty(PropertyName="house")]
public int? House { get; set; }
将属性更改为nullable
类型,例如int? House { get; set; }