C# 語(yǔ)言在處理 JSON 數(shù)據(jù)時(shí)非常方便。JSON(JavaScript Object Notation)是一種常用的輕量級(jí)數(shù)據(jù)交換格式,它具有可讀性強(qiáng)、易于解析等特點(diǎn),在 Web 開(kāi)發(fā)、移動(dòng)應(yīng)用和數(shù)據(jù)傳輸?shù)确矫娑嫉玫搅藦V泛使用。
在 C# 中,我們可以使用 Newtonsoft.Json 或 System.Text.Json 來(lái)處理 JSON 數(shù)據(jù)。這兩個(gè)庫(kù)都提供了 JsonSerializer 類(lèi)來(lái)簡(jiǎn)化 JSON 的序列化和反序列化過(guò)程。
使用 Newtonsoft.Json
首先,我們需要通過(guò) NuGet 安裝 Newtonsoft.Json。
Install-Package Newtonsoft.Json
在使用 Newtonsoft.Json 序列化和反序列化 JSON 數(shù)據(jù)時(shí),我們可以直接使用 Json 序列化器和反序列化器的方法。
例如,以下代碼將一個(gè)對(duì)象序列化為 JSON 字符串:
using Newtonsoft.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } ... Person person = new Person() { Name = "John", Age = 30 }; string json = JsonConvert.SerializeObject(person);
在上述代碼中,我們定義了一個(gè) Person 類(lèi)和一個(gè)實(shí)例 person,然后使用 JsonConvert.SerializeObject 方法將其序列化為 JSON 格式的字符串。
另外,我們還可以使用 JsonConvert.DeserializeObject 方法將 JSON 格式的字符串反序列化為一個(gè)對(duì)象。例如,以下代碼將一個(gè) JSON 字符串反序列化為 Person 對(duì)象:
string json = '{"Name":"John","Age":30}'; Person person = JsonConvert.DeserializeObject<Person>(json);
使用 System.Text.Json
System.Text.Json 是 .NET Core(和 .NET 5+)自帶的 JSON 庫(kù),無(wú)需安裝 NuGet 包。它提供了 JsonSerializer 類(lèi)來(lái)處理 JSON 序列化和反序列化。
例如,以下代碼將一個(gè)對(duì)象序列化為 JSON 字符串:
using System.Text.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } ... Person person = new Person() { Name = "John", Age = 30 }; string json = JsonSerializer.Serialize(person);
在上述代碼中,我們定義了一個(gè) Person 類(lèi)和一個(gè)實(shí)例 person,然后使用 JsonSerializer.Serialize 方法將其序列化為 JSON 格式的字符串。
另外,我們還可以使用 JsonSerializer.Deserialize 方法將 JSON 格式的字符串反序列化為一個(gè)對(duì)象。例如,以下代碼將一個(gè) JSON 字符串反序列化為 Person 對(duì)象:
string json = '{"Name":"John","Age":30}'; Person person = JsonSerializer.Deserialize<Person>(json);
無(wú)論是使用 Newtonsoft.Json 還是 System.Text.Json,我們都可以很方便地處理 JSON 數(shù)據(jù),在 C# 中進(jìn)行數(shù)據(jù)的傳輸和交換。