【问题标题】:How to deserialize a JSON string in .NET, when you don't have a type for it当您没有类型时,如何在 .NET 中反序列化 JSON 字符串
【发布时间】:2012-01-03 19:39:23
【问题描述】:

检查此网址:

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

这是来自 StackOveflow 的 API 的 URL。返回的 JSON 真的很复杂,我想把它转换成一个对象,这样我就可以在我的 ASP.NET MVC 的视图中使用它。

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

我该怎么办?

【问题讨论】:

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


    【解决方案1】:
    【解决方案2】:

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

    JObject o = JObject.Parse(json);
    
    string name = (string)o["Name"];
    

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        【解决方案4】:

        试试@987654321@,它有很多Deserialize 重载方法,试试看,你一定会得到你想要的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-09
          • 1970-01-01
          相关资源
          最近更新 更多