如何防止在json.NET中取消对现有json属性的序列化



我有一个类似的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; }

相关内容

  • 没有找到相关文章

最新更新