>백엔드 개발 >C#.Net 튜토리얼 >.NET에서 JSON 데이터의 직렬화 및 역직렬화 작업 분석

.NET에서 JSON 데이터의 직렬화 및 역직렬화 작업 분석

黄舟
黄舟원래의
2017-03-10 13:47:581696검색

DataContractJsonSerializer 클래스를 사용하여 유형 인스턴스를 JSON 문자열로 직렬화하고 JSON 문자열을 유형 인스턴스로 역직렬화할 수 있습니다. DataContractJsonSerializer는 System.Runtime.Serialization.Json 네임스페이스

에 있고, .NET Framework 3.5는 System.ServiceModel.Web.dll에 포함되어 있으며 이에 대한 참조는 .NET Framework 4에 추가되어야 합니다. 시스템.런타임.

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

출력 결과:

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

역직렬화 데모:

 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.