0

我有这样的 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 设置为 0。

有任何方法可以使这个属性成为可选的,我希望我的模型没有缺失的属性。

其他想法 当我写这篇文章时,我认为这可能根本没有任何意义,也许模型就是“模型”,为什么它在不同的情况下应该有所不同......可能是错误的。

任何答案都会非常感激。谢谢

4

2 回答 2

4

The default value of int is 0. If House is optional, make it nullable.

[JsonProperty(PropertyName="house")]
public int? House { get; set; }
于 2012-07-08T14:57:56.227 回答
1

Change your properties to be nullable types - for example int? House { get; set; }

于 2012-07-08T14:58:36.353 回答