2016-07-22 44 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);