Heim >Backend-Entwicklung >C#.Net-Tutorial >Analyse von Serialisierungs- und Deserialisierungsvorgängen von JSON-Daten in .NET

Analyse von Serialisierungs- und Deserialisierungsvorgängen von JSON-Daten in .NET

黄舟
黄舟Original
2017-03-10 13:47:581667Durchsuche

Sie können die DataContractJsonSerializer-Klasse verwenden, um Typinstanzen in JSON-Strings zu serialisieren und JSON-Strings in Typinstanzen zu deserialisieren. DataContractJsonSerializer befindet sich im System.Runtime.Serialization.Json-Namespace

, .NET Framework 3.5 ist in System.ServiceModel.Web.dll enthalten und ein Verweis darauf muss in .NET Framework 4 hinzugefügt werden System.Runtime.

Code für Serialisierung und Deserialisierung mit 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: }

Serialisierungsdemo:

Einfache Objektperson:

1: public class Person
  2: {
  3:     public string Name { get; set; }
  4:     public int Age { get; set; }
  5: }

Serialisiert in JSON-Zeichenfolge:

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

Ausgabeergebnis:

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

Deserialisierungsdemo:

 1: protected void Page_Load(object sender, EventArgs e)
  2: {
  3:     string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
  4:     Person p = JsonHelper.JsonDeserialize<Person>(jsonString);
  5: }

JSON-Serialisierung und Deserialisierung in ASP.NET kann auch JavaScriptSerializer verwenden. Unter dem System.Web.Script.Serializatioin-Namespace muss auf System.Web.Extensions.dll verwiesen werden.


Das obige ist der detaillierte Inhalt vonAnalyse von Serialisierungs- und Deserialisierungsvorgängen von JSON-Daten in .NET. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn