【问题标题】:How to handle JSON in C#?如何在 C# 中处理 JSON?
【发布时间】:2009-11-12 03:10:45
【问题描述】:

是否有一个简单/优雅的解析器来处理 C# 中的 JSON?实际序列化/反序列化成 C# 对象怎么样?

【问题讨论】:

  • 作为这个问题的附录,谁能说明System.Web.Script.Serialization.JavaScriptSerializer 是否适用于这个问题(msdn.microsoft.com/en-us/library/…)?我很好奇。

标签: c# json


【解决方案1】:

JSON.Net 是一个不错的库

【讨论】:

  • JSON.Net 一路走来,让使用 json 变得更容易
【解决方案2】:
var jss = new JavaScriptSerializer();
var data = jss.Deserialize<dynamic>(jsonString);

别忘了引用“System.Web.Extensions

【讨论】:

    【解决方案3】:

    http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx

    基本上,您也可以将“数据契约”模型(通常用于 WCF XML 序列化)用于 JSON。我发现它非常快速且易于独立用于小任务。

    还可以查看此示例:

    http://msdn.microsoft.com/en-us/library/bb943471.aspx

    【讨论】:

      【解决方案4】:

      DataContractJsonSerializer 类。

      反序列化:

      DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyObject));
      Stream s = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json_string));
      MyObject obj = ser.ReadObject(s) as MyObject;
      

      序列化:

      DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MyObject));
      Stream s = new MemoryStream();
      MyObject obj = new MyObject { .. set properties .. };
      ser.WriteObject(s, obj);
      s.Seek( SeekOrigin.Begin );
      var reader = new StreamReader(s);
      string json_string = reader.ReadToEnd();
      

      【讨论】:

        【解决方案5】:

        DataContractJsonSerializer 用于对对象进行序列化。

        在 Silverlight 3 中,有 System.Json (http://msdn.microsoft.com/en-us/library/system.json(VS.95).aspx),非常方便。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-14
          • 2014-09-25
          • 1970-01-01
          • 2010-09-18
          • 2020-08-23
          相关资源
          最近更新 更多