【问题标题】:C# JSON to LIST extension methodC# JSON to LIST 扩展方法
【发布时间】:2010-10-28 21:57:52
【问题描述】:

从 Scottgu 的帖子中,我得到了将集合序列化为 JSON 对象的代码。(i)如何将 JSON 对象转换回 List? (ii) 我在 System.Runtime.Serialization 中没有找到 JavaScriptserializer。唯一的代码是否适用于 VS 2010?

ScottGu 的 sn-p

namespace ScottGuHelper.JSON
{
  public static class JSONHelper
  {
      public static string ToJSON(this object obj)
      {
        JavaScriptserializer serializer=new JavaScriptserializer();
        return serializer.serialize(obj);
      }

     public static string ToJSON(this object obj,int recursionDepth)
     {
       JavaScriptserializer serializer=new Javascriptserializer();
       serializer.RecursionLimit=recursionDepth;
       return serializer.serialize(obj); 
     }

 }
}

【问题讨论】:

  • 顺便说一句 - JavaScriptSerializer 已弃用,您应该使用 DataContractJsonSerialzer

标签: c# asp.net json serialization


【解决方案1】:

参考System.Web.Extensions.dll。它位于 System.Web.Script.Serialization 命名空间中。在 JavaScriptSerializer 的 MSDN 页面上,您会看到它的位置以及它适用于哪些 .NET 版本。

【讨论】:

    【解决方案2】:

    参考System.Web.Script.SerializationJavaScriptSerializer.

    编写一个扩展方法来调用Deserialize对象。

        public static T JSONtoList<T>(this object jsonObj)
        {
            JavaScriptSerializer _jsserializer = new JavaScriptSerializer();
            return _jsserializer.Deserialize<T>(jsonObj as string);
        }
    

    希望这会有所帮助。(代码未经测试)。

    【讨论】:

      【解决方案3】:

      查看同一 JavascriptSerializer 类的 Deserialize 方法。

      该类位于System.Web.Script.Serialization 命名空间中

      你可以在 SO 上找到一个很好的使用 here 的例子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-15
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多