ホームページ  >  記事  >  バックエンド開発  >  .NET での JSON データのシリアル化および逆シリアル化操作の分析

.NET での JSON データのシリアル化および逆シリアル化操作の分析

黄舟
黄舟オリジナル
2017-03-10 13:47:581661ブラウズ

DataContractJsonSerializer クラスを使用して、型インスタンスを JSON 文字列にシリアル化し、JSON 文字列を型インスタンスに逆シリアル化できます。 DataContractJsonSerializer は System.Runtime.Serialization.Json 名前空間

にあり、.NET Framework 3.5 は System.ServiceModel.Web.dll に含まれており、.NET Framework 4 は System.Runtime に追加する必要があります。連載化。

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: }

シリアル化デモ:

単純なオブジェクト人:

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: }

出力結果:

rre ee

逆シリアル化デモ:

 {"Age":28,"Name":"张三"}

ASP.NET での JSON シリアル化と逆シリアル化では、System.Web.Script.Serializatioin 名前空間で、System.Web.Extensions.dll を参照することもできます。


以上が.NET での JSON データのシリアル化および逆シリアル化操作の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。