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));

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


     

  • 相关阅读:
    代码签名证书原理和作用
    安装SSL证书有什么作用?
    有关如何修复Android手机上的SSL连接错误的快速指南
    可信时间戳如何生成?时间戳基本工作原理
    全球通用的数字证书产品选购指南
    国密SSL证书申请免费试用
    国密SSL证书免费试用申请指南
    哈希算法的原理和用途详解
    https证书安装无效的主要原因
    Anatomy of a Database System学习笔记
  • 原文地址:https://www.cnblogs.com/79039535/p/2284904.html
Copyright © 2011-2022 走看看