2016-07-22 65 views
0

反序列化JSON對象我有一個像使用newtonsoft JSON

{"NewMessage":[{"Id":-1,"Message":"Test","MessageName":"test1"}],"OldMessage":[]} 

一個JSON,我需要在我的類對象進行反序列化JSON此。

我的班級

public class NewMessage{ 
public int Id{get;set;} 
public string Message{get;set;} 
public string MessageName{get;set;} 
} 

public class OldMessage{ 
public int Id{get;set;} 
public string Message{get;set;} 
public string MessageName{get;set;} 
} 

豈能用newtonsoft.json實現這一目標。任何人都可以幫忙在此先感謝

回答

2

您的JSON實際上包含一個對象具有您定義的類的屬性 - 給定的代碼發佈,您沒有類反序列化到。

您可以做的第一件事很明顯 - 創建第三個類 - MessagePair - 它聲明瞭兩個屬性 - NewMessage[]OldMessage[]。然後,你可以反序列化JSON字符串是這樣的:

var theMessages = JsonConvert.DeserializeObject<MessagePair>(jsonText); 

如果你不喜歡創建單獨的類,然後你可以反序列化爲匿名對象是這樣的:

var theMessages = new { 
    NewMessage[] NewMessages = null, 
    OldMessage[] OldMessages = null 
}; 

theMessages = JsonConvert.DeserializeAnonymousType(jsonText, theMessages);