如何在.NET中反序列化JSON字符串,如果没有它的类型

时间:2011-11-22 12:04:45

标签: .net json asp.net-mvc-3 view jsonserializer

检查此网址:

http://api.stackoverflow.com/1.1/users/811785/questions?sort=votes

这是StackOveflow API的URL。返回的JSON非常复杂,我想将它转换为一个对象,以便我可以在我的ASP.NET MVC视图中使用它。

问题是,JavaScriptSerializer对象的Deserialize方法,将Type参数作为其第二个参数。但是返回的JSON是如此复杂,我不想创建一个强类型对象来反序列化它。

我该怎么办?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

使用Json.NET你可以做类似的事情

JObject o = JObject.Parse(json);

string name = (string)o["Name"];

答案 2 :(得分:1)

您不需要像JSON.NET这样的额外库,只需使用JavaScriptSerializer。

您可以考虑JavaScriptSerializer.DeserializeObject,它会返回Object,基本上是Dictionary<string, object>

您必须继续投射才能获得嵌套值。

快速观看中查看反序列化对象,然后您就会知道投出所返回的Dictionary<>

需要什么

答案 3 :(得分:0)

尝试使用System.Web.Script.JavascriptSerializer多个Deserialize重载方法的{{1}},玩它,你一定会得到你想要的。