使用newtonsoft json反序列化json对象

时间:2016-07-22 09:09:08

标签: c# json json.net

我有一个喜欢

的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来实现这一目标。有谁可以帮忙。提前谢谢

1 个答案:

答案 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);