0

检查这个网址:

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

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

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

我该怎么办?

4

4 回答 4

2

在 .NET 4.0 中,您可以使用动态

更多在这里

http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/22/using-c-4.0-and-dynamic-to-parse-json.aspx

还有更多在这里

http://dynamicjson.codeplex.com/

于 2011-11-22T12:07:58.320 回答
2

使用Json.NET你可以做这样的事情

JObject o = JObject.Parse(json);

string name = (string)o["Name"];
于 2011-11-22T12:12:14.157 回答
1

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

您可以考虑JavaScriptSerializer.DeserializeObjectwhich 将返回一个Objectwhich 基本上是一个Dictionary<string, object>.

您必须继续强制转换才能获得嵌套值。

查看您的Quick Watch中的反序列化对象,然后您将知道您需要什么来转换返回的Dictionary<>

于 2011-11-22T13:26:30.593 回答
0

试试System.Web.Script.JavascriptSerializer哪个有很多Deserialize重载的方法,玩弄它,你一定会得到你想要的。

于 2011-11-22T12:10:26.510 回答