当您没有类型时,如何在 .NET 中反序列化 JSON 字符串

发布于 2024-12-17 13:21:12 字数 424 浏览 4 评论 0 原文

检查此 URL:

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

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

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

我应该怎么办?

Check this URL:

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

It's a URL from StackOveflow's API. The returned JSON is really complex, and I'd like to convert it into an object, so that I can use it in my ASP.NET MVC's view.

The problem is that, JavaScriptSerializer object's Deserialize method, takes a Type parameter as its second parameter. But the returned JSON is so complex, I don't want to create a strongly-typed object for deserializing it.

What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鹊巢 2024-12-24 13:21:12

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

JObject o = JObject.Parse(json);

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

With Json.NET you can do something like this

JObject o = JObject.Parse(json);

string name = (string)o["Name"];
裂开嘴轻声笑有多痛 2024-12-24 13:21:12

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

您可以考虑 JavaScriptSerializer.DeserializeObject ,它将返回一个 Object ,它基本上是一个 Dictionary

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

快速观察中查看反序列化对象,然后您就会知道到底需要什么来转换返回的Dictionary

You don't need an extra library like JSON.NET and just work with JavaScriptSerializer.

You may consider JavaScriptSerializer.DeserializeObject which will return an Object which is basically a Dictionary<string, object>.

You have to keep on casting to get the nested value.

See the deserialized object in your Quick Watch, then you will know what exactly you need to cast your returned Dictionary<>

半世蒼涼 2024-12-24 13:21:12

尝试 System.Web.Script.JavascriptSerializer 它有许多 Deserialize 重载方法,使用它,你一定会得到你想要的。

Try System.Web.Script.JavascriptSerializer which is having many Deserialize overloaded methods, play with it, and you will surely get what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文