zoukankan      html  css  js  c++  java
  • 步步为营:Asp.Net序列化Json格式的两种方法

    过去我们使用JSON.net序列化一个对象,在asp.net3.5中已经集成了序列化对象为json的方法。

    我们分别针对System.Runtime.Serialization.Json和System.Web.Script.Serialization两个命名空间下的不同方法进行序列化和反序列化。

    System.Runtime.Serialization.Json

    (在vs2008添加引用System.Runtime.Serialization 如果在非WEB项目下还需要引用System.ServiceModel.Web)

    public class JsonHelper
    {
    /// <summary>
    /// 生成Json格式
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static string GetJson<T>(T obj)
    {
    DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
    using (MemoryStream stream = new MemoryStream())
    {
    json.WriteObject(stream, obj);
    string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
    }
    }
    /// <summary>
    /// 获取Json的Model
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="szJson"></param>
    /// <returns></returns>
    public static T ParseFromJson<T>(string szJson)
    {
    T obj = Activator.CreateInstance<T>();
    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
    {
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
    return (T)serializer.ReadObject(ms);
    }
    }
    }

    System.Web.Script.Serialization

    (引用System.Web.Extensions.dll)

    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    Response.Write( jss.Serialize(l_topmenu ));
    string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} ";
    topMenu toptabmenu = jss.Deserialize<topMenu>(szJson);
    Response.Write( jss.Serialize(toptabmenu.title));

    综上。两种方法个有好处。一个比较灵活。一个较简洁


     

  • 相关阅读:
    程序员新年要实现的10个愿望
    编写超级可读代码的15个最佳实践
    LeetCode 最大子序和
    LeetCode 最大正方形
    LeetCode 买卖股票的最佳时机 II
    LeetCode 买卖股票的最佳时机
    B树和B+树
    SQL的几种连接
    LeetCode 无重复字符的最长子串
    LeetCode 翻转字符串里的单词
  • 原文地址:https://www.cnblogs.com/79039535/p/2284904.html
Copyright © 2011-2022 走看看