Heim > Web-Frontend > js-Tutorial > Hauptteil

So implementieren Sie die Serialisierung und Deserialisierung von Json (mit Code)

php中世界最好的语言
Freigeben: 2018-04-25 15:24:59
Original
2922 Leute haben es durchsucht

Dieses Mal zeige ich Ihnen, wie Sie die Json-Serialisierung und -Deserialisierung (mit Code) implementieren ein Blick.

Was ist JSON?

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat. Es ist für Menschen leicht zu lesen und zu schreiben und für Maschinen leicht zu analysieren und zu generieren unabhängig.

Übersetzung: Json [

Javascript-Objekt

Darstellungsmethode], es ist ein leichtes Datenaustauschformat, wir können es leicht lesen und schreiben und es lässt sich sehr leicht von Computern umwandeln und generieren , es ist völlig unabhängig von der Sprache.

Json unterstützt die folgenden zwei Datenstrukturen:

    Eine Sammlung von Schlüssel-Wert-Paaren – verschiedene
  1. Programmiersprachen

    unterstützen alle diese Datenstruktur;

  2. Eine Sammlung geordneter Listentypwerte – dazu gehören Arrays, Mengen, Vektoren oder Sequenzen usw. warten.

Json hat die folgenden Ausdrücke

1. Objekt

Ein „Schlüssel/Wert“ in keiner Reihenfolge. Ein Objekt beginnt mit einer geschweiften Klammer „{“ und endet mit einer geschweiften Klammer „}“. Nach jedem „Schlüssel“ steht ein Doppelpunkt, und Kommas werden verwendet, um mehrere Schlüssel zu trennen. Wertepaare.

Zum Beispiel:

  var user = {"name":"Manas","gender":"Male","birthday":"1987-8-8"}
Nach dem Login kopieren

2. Array

Ein Array beginnt mit eckigen Klammern „[“ und endet mit Quadrat Klammern „]“ enden und alle Werte werden durch Kommas getrennt Zeichen, markieren Sie sie mit Anführungszeichen und trennen Sie sie durch Backslashes.

Zum Beispiel:

var userlist = [{"user":{"name":"Manas","gender":"Male","birthday":"1987-8-8"}}, 
{"user":{"name":"Mohapatra","Male":"Female","birthday":"1987-7-7"}}]
Nach dem Login kopieren

Okay, nach der Einführung von JSON kommen wir zur Sache.

Es gibt drei Möglichkeiten zum Serialisieren und Deserialisieren:

Verwenden Sie die Klasse

Verwenden der -Klasse

  1. Verwenden der JSON.NET-KlassenbibliothekJavaScriptSerializer

  2. DataContractJsonSerializer Beginnen wir mit Werfen wir einen Blick auf die Verwendung der Klasse DataContractJsonSerializer

  3. , die uns beim Serialisieren und Deserialisieren von Json hilft. Sie befindet sich im Namespace
unter Assembly

ri. Hier erstelle ich zunächst ein neues Konsolenprogramm und eine neue Klasse Student

var userlist = "{\"ID\":1,\"Name\":\"Manas\",\"Address\":\"India\"}"
Nach dem Login kopieren
DataContractJsonSerializer System.Runtime.Serialization.dllSystem.Runtime.Serialization.JsonHinweis: oben Der Vertrag [DataMember] und [DataContract] in der Student-Entität müssen hinzugefügt werden, wenn Serialisierung und Deserialisierung verwendet werden. Für die anderen beiden Methoden ist das Hinzufügen nicht erforderlich, und es ist in Ordnung.

Der Code unseres Programms:

Um zuerst auf die Assembly zu verweisen, lautet das Ergebnis nach Einführung dieses Namensraums

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization;
namespace JsonSerializerAndDeSerializer
{
 [DataContract]
 public class Student
 {
  [DataMember]
  public int ID { get; set; }
  [DataMember]
  public string Name { get; set; }
  [DataMember]
  public int Age { get; set; }
  [DataMember]
  public string Sex { get; set; }
 }
}
Nach dem Login kopieren
rrree: DataContractJsonSerializer

Sehen Sie sich noch einmal

mit JavaScript anJsonSerializer:

JavaScriptSerializer ist ein Klasse, die beim Serialisieren und Deserialisieren von JSON hilft. Sie ist im Namespace System.Web.Script.Serialization vorhanden, der in der Assembly System.Web.Extensions.dll verfügbar ist. Verwenden Sie die Serialize-Methode Deserialisieren Sie den JSON-String mit den Methoden Deserialize in ein .Net-Objekt. Sehen wir uns an, wie Sie die Serialisierung und Deserialisierung mit JavaScriptSerializer implementieren

//-----------------------------------------------------------------------------------------
//使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dll.中
using System.Web.Script.Serialization;
//----------------------------------------------------------------------------------------
Nach dem Login kopieren
#region 2.JavaScriptSerializer方式实现序列化和反序列化
   Student stu = new Student()
    {
     ID = 1,
     Name = "关羽",
     Age = 2000,
     Sex = "男"
    };
   JavaScriptSerializer js = new JavaScriptSerializer();
   string jsonData = js.Serialize(stu);//序列化
   Console.WriteLine(jsonData);
   ////反序列化方式一:
   string desJson = jsonData;
   //Student model = js.Deserialize<Student>(desJson);// //反序列化
   //string message = string.Format("ID={0},Name={1},Age={2},Sex={3}", model.ID, model.Name, model.Age, model.Sex);
   //Console.WriteLine(message);
   //Console.ReadKey(); 
   ////反序列化方式2
   dynamic modelDy = js.Deserialize<dynamic>(desJson); //反序列化
   string messageDy = string.Format("动态的反序列化,ID={0},Name={1},Age={2},Sex={3}",
    modelDy["ID"], modelDy["Name"], modelDy["Age"], modelDy["Sex"]);//这里要使用索引取值,不能使用对象.属性
   Console.WriteLine(messageDy);
   Console.ReadKey(); 
   #endregion
Nach dem Login kopieren

结果是:

 

最后看看使用JSON.NET的情况,引入类库:

 

下面的英文,看不懂可略过。。。

Json.NET is a third party library which helps conversion between JSON text and .NET object using the JsonSerializer. The JsonSerializer converts .NET objects into their JSON equivalent text and back again by mapping the .NET object property names to the JSON property names. It is open source software and free for commercial purposes.

The following are some awesome【极好的】 features,
Flexible JSON serializer for converting between .NET objects and JSON.
LINQ to JSON for manually reading and writing JSON.
High performance, faster than .NET's built-in【内嵌】 JSON serializers.
Easy to read JSON.
Convert JSON to and from XML.
Supports .NET 2, .NET 3.5, .NET 4, Silverlight and Windows Phone.
Let's start learning how to install and implement:

In Visual Studio, go to Tools Menu -> Choose Library Package Manger -> Package Manager Console. It opens a command window where we need to put the following command to install Newtonsoft.Json.

Install-Package Newtonsoft.Json
OR
In Visual Studio, Tools menu -> Manage Nuget Package Manger Solution and type “JSON.NET” to search it online. Here's the figure,

 

//使用Json.NET类库需要引入的命名空间
//-----------------------------------------------------------------------------
using Newtonsoft.Json;
//-------------------------------------------------------------------------
Nach dem Login kopieren
#region 3.Json.NET序列化
   List<Student> lstStuModel = new List<Student>() 
   {
   
   new Student(){ID=1,Name="张飞",Age=250,Sex="男"},
   new Student(){ID=2,Name="潘金莲",Age=300,Sex="女"}
   };
   //Json.NET序列化
   string jsonData = JsonConvert.SerializeObject(lstStuModel);
   Console.WriteLine(jsonData);
   Console.ReadKey();
   //Json.NET反序列化
   string json = @"{ 'Name':'C#','Age':'3000','ID':'1','Sex':'女'}";
   Student descJsonStu = JsonConvert.DeserializeObject<Student>(json);//反序列化
   Console.WriteLine(string.Format("反序列化: ID={0},Name={1},Sex={2},Sex={3}", descJsonStu.ID, descJsonStu.Name, descJsonStu.Age, descJsonStu.Sex));
   Console.ReadKey(); 
   #endregion
Nach dem Login kopieren

运行之后,结果是:

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

使用jquery动态遍历Json对象属性与值步骤详解

jQuery深拷贝Json对象详解(附代码)

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Serialisierung und Deserialisierung von Json (mit Code). 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!