zoukankan      html  css  js  c++  java
  • json序列化与反序列化

    方法1 :

    需要手工添加引用:System.Web.Extensions,使用较方便:

     Dictionary<string, string> dict = new Dictionary<string, string>();
                dict["s"] = "s1";
                dict["t"] = "t1";
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                string json = serializer.Serialize(dict);

                dict = serializer.Deserialize<Dictionary<string, string>>(json);

    方法2:

    不需手工添加,但使用较复杂

     Dictionary<string, string> dict = new Dictionary<string, string>();
                dict["s"] = "s1";
                dict["t"] = "t1";

                System.Runtime.Serialization.Json.DataContractJsonSerializer p = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Dictionary<string, string>));
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                p.WriteObject(ms, dict);
                string str = System.Text.Encoding.UTF8.GetString(ms.ToArray());

                byte[] b = System.Text.Encoding.UTF8.GetBytes(str);
                ms = new System.IO.MemoryStream(b);

                dict = p.ReadObject(ms) as Dictionary<string, string>;

    方法3:

    使用开源组件Newtonsoft.Json(下载地址http://json.codeplex.com/)

    经测试:Newtonsoft.Json可以序列化DataSet对象,而System.Web.Script.Serialization.JavaScriptSerializer那不行。

    另外:json基本也是序列化和反序列化的问题,以下是c#本身的序列化组件

    NET框架提供了两种串行化的方式:

    1、是使用BinaryFormatter进行串行化;

    2、使用SoapFormatter进行串行化;

    3、使用XmlSerializer进行串行化。

  • 相关阅读:
    DataGridView编辑后立即更新到数据库的两种方法
    Azure 意外重启, 丢失sql server master表和 filezilla
    欧洲美食精选-德国篇
    Azure 负载均衡和可用性集
    windows Azure 域名绑定
    Azure billing 分析(2)
    Azure billing 分析
    试用windows Azure
    Excel公式无法重算,暂无法解决
    iphone 语音备忘录 同步问题
  • 原文地址:https://www.cnblogs.com/81/p/7776842.html
Copyright © 2011-2022 走看看