2012-07-08 26 views
0

被deserialiezed我有這樣如何防止沒有現成的JSON屬性在JSON.NET

{ 
    car:100, 
    house:200, 
    bike:300 
} 

但有時一些屬性的JSON響應的響應不來的。像這樣的(房子丟失)

{ 
    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; } 
} 

現在的問題: 在第二個例子,在房子缺少我仍然得到對象測試,以便將Propery House設置爲0.

有什麼辦法可以使這個屬性可選,我想我的模型沒有缺少的屬性。

其他認爲 當我寫這篇文章我想,也許這個簡化版,使任何意義,也許模型是「模範」,爲什麼是在不同的instances..may不同的是是錯了。

任何答案都會大大降低。 謝謝

回答

4

int的默認值爲0.如果House是可選的,則使其爲空。

[JsonProperty(PropertyName="house")] 
public int? House { get; set; } 
+0

謝謝!工作很好! – blackjid 2012-07-08 15:23:30

1

改變你的屬性是nullable類型 - 例如int? House { get; set; }