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

黄舟
Freigeben: 2017-03-10 13:47:58
Original
1664 Leute haben es durchsucht

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: }
Nach dem Login kopieren

Serialisierungsdemo:

Einfache Objektperson:

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

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: }
Nach dem Login kopieren

Ausgabeergebnis:

 {"Age":28,"Name":"张三"}
Nach dem Login kopieren

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: }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage