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-ObjektDarstellungsmethode], 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:
Json hat die folgenden Ausdrücke
1. ObjektEin „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"}
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"}}]
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
Verwenden der JSON.NET-KlassenbibliothekJavaScriptSerializer
DataContractJsonSerializer
Beginnen wir mit Werfen wir einen Blick auf die Verwendung der Klasse DataContractJsonSerializer
ri. Hier erstelle ich zunächst ein neues Konsolenprogramm und eine neue Klasse Student
var userlist = "{\"ID\":1,\"Name\":\"Manas\",\"Address\":\"India\"}"
DataContractJsonSerializer
System.Runtime.Serialization.dll
System.Runtime.Serialization.Json
Hinweis: 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; }
}
}
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
//----------------------------------------------------------------------------------------- //使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dll.中 using System.Web.Script.Serialization; //----------------------------------------------------------------------------------------
#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
结果是:
最后看看使用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; //-------------------------------------------------------------------------
#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
运行之后,结果是:
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!