【问题标题】:Json.Net deserialize anonymous type [duplicate]Json.Net反序列化匿名类型[重复]
【发布时间】:2011-09-19 10:05:21
【问题描述】:

可能重复:
Deserializing JSON into an object with Json.NET

关于如何使用 Json.Net 将以下响应反序列化为匿名类型的任何想法?

{"d":[{"day":"Wednesday","firstSet":{"start":"17:00","close":"23:00","hours":6,"isValid":true},"secondSet":{"start":"00:00","close":"00:00","hours":0,"isValid":false},"personMinimum":2,"personMaximum":25}]}

到目前为止的尝试导致以下错误

无法从 System.String 转换或转换为 f__AnonymousType35[System.String,<>f__AnonymousType24[System.String,System.String,System.Int32,System.Boolean],f__AnonymousType2`4[System.String,System. String,System.Int32,System.Boolean],System.Int32,System.Int32].

代码如下

var json_complex = new
{
  d = new
  {
    day = "",
    firstSet = new
    {
      start = "",
      close = "",
      hours = 0,
      isValid = false
    },
    secondSet = new
    {
      start = "",
      close = "",
      hours = 0,
      isValid = false
    },
    personMinimum = 2,
    personMaximum = 25
  }
};
var json = JsonConvert.DeserializeAnonymousType(jsonResponse, json_complex);

有什么想法吗?

【问题讨论】:

标签: asp.net json serialization anonymous-types json.net


【解决方案1】:

首先我必须说你为什么要在你的应用程序中包含第三方?

Asp.net 提供JavaScriptSerializer 用于序列化!

看看我的问题并参考你可以从this得到想法的答案

【讨论】:

  • 可能是因为 Json.net 比 JavaScriptSerializer 更方便灵活。例如。 Json.net 有一个 linq-2-json 功能,它允许您“即时”构建 Json 对象并使用 linq 语法查询 Json 对象。
  • “你为什么要在你的应用程序中包含第三方?” - 你为什么反对使用很棒的开源代码?
  • 不要使用 JavaScriptSerializer。使用 Newtonsoft.Json。甚至微软也使用它而不是他们自己的 System.Json。 JavaScriptSerializer 有很多 Newtonsoft 将克服的问题。此外,Newtonsoft 速度更快。
猜你喜欢
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多