我有一个喜欢
的json{"NewMessage":[{"Id":-1,"Message":"Test","MessageName":"test1"}],"OldMessage":[]}
我需要将这个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来实现这一目标。有谁可以帮忙。提前谢谢
答案 0 :(得分: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);