2016-12-09 80 views
0

缺少的領域我有型號爲deserialisation創建說,忽略而Deserialisation使用newtonsoft

class Object 
{ 
    public string prop1 {get; set} 
    public string prop2 {get; set} 
} 

現在,如果我JSONstring包含兩個領域,即

{ 
    "prop1" : "value prop1", 
    "prop2" : "value prop2" 
} 

但這會失敗,這隻會工作如果我只有一個屬性在JSON即

{ 
    "prop1" : "value1" 
} 

如何反序列化時重新是一個缺失的屬性,並使其選項。

+1

......所以我們還是不知道是什麼故障 - 該代碼提供不會失敗。當然,它甚至不會編譯(在'set'之後缺少分號)。爲了能夠提供幫助,我們需要一個例子,a)編譯和b)失敗。 –

+0

*「但這會失敗」*,它不會失敗。用你在這裏提供的例子,它將反序列化,沒有任何問題。當出現錯誤時,分享錯誤可能是個好主意。 – Jim

+2

[Works for me](https://dotnetfiddle.net/EIlnJk)。你可以創建一個顯示錯誤的[MCVE](http://stackoverflow.com/help/mcve)嗎? –

回答

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; 
+0

嗨@Vinodh你可以upvote答案,如果它幫助,如果這個答案已經解決了你的問題,請考慮[接受它](http://meta.stackexchange.com/questions/5234/how-does通過點擊複選標記來接受答案)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 –