.NET中JSON資料進行序列化與反序列化操作分析

黄舟
發布: 2017-03-10 13:47:58
原創
1664 人瀏覽過

可以使用DataContractJsonSerializer類別將類型實例序列化為JSON字串,並將JSON字串反序列化為類型實例。 DataContractJsonSerializer在System.Runtime.Serialization.Json命名空間下

,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要加入對其的參考;.NET Framework 4在System.Runtime. Serialization中。

  利用DataContractJsonSerializer序列化與反序列化的程式碼:

 

 1: using System;
  2: using System.Collections.Generic;
  3: using System.Linq;
  4: using System.Web;
  5: using System.Runtime.Serialization.Json;
  6: using System.IO;
  7: using System.Text;
  8:
  9: /// <summary>
  10: /// JSON序列化和反序列化辅助类
  11: /// </summary>
  12: public class JsonHelper
  13: {
  14:     /// <summary>
  15:     /// JSON序列化
  16:     /// </summary>
  17:     public static string JsonSerializer<T>(T t)
  18:     {
  19:         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  20:         MemoryStream ms = new MemoryStream();
  21:         ser.WriteObject(ms, t);
  22:         string jsonString = Encoding.UTF8.GetString(ms.ToArray());
  23:         ms.Close();
  24:         return jsonString;
  25:     }
  26:
  27:     /// <summary>
  28:     /// JSON反序列化
  29:     /// </summary>
  30:     public static T JsonDeserialize<T>(string jsonString)
  31:     {
  32:         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  33:         MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
  34:         T obj = (T)ser.ReadObject(ms);
  35:         return obj;
  36:     }
  37: }
登入後複製

  序列化Demo:

Person 簡單物件:

1: public class Person
  2: {
  3:     public string Name { get; set; }
  4:     public int Age { get; set; }
  5: }
登入後複製

#簡單物件

  序列化為JSON字串:

 

 1: protected void Page_Load(object sender, EventArgs e)
  2: {
  3:     Person p = new Person();
  4:     p.Name = "张三";
  5:     p.Age = 28;
  6:
  7:     string jsonString = JsonHelper.JsonSerializer<Person>(p);
  8:     Response.Write(jsonString);
  9: }
登入後複製

  輸出結果:

 {"Age":28,"Name":"张三"}
登入後複製

  反序列化Demo:

 1: protected void Page_Load(object sender, EventArgs e)
  2: {
  3:     string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
  4:     Person p = JsonHelper.JsonDeserialize<Person>(jsonString);
  5: }
登入後複製
  ASP.NET中的JSON化與反序列化也可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空間下,需引用System.Web.Extensions.dll.也可以使用JSON.NET.############ #

以上是.NET中JSON資料進行序列化與反序列化操作分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板