首頁 >後端開發 >C#.Net教程 >C# 中的 JSON 解析器

C# 中的 JSON 解析器

PHPz
PHPz原創
2024-09-03 15:33:301050瀏覽

JSON(JavaScript 物件表示法)解析與語言無關,是一種輕量級資料交換格式、自描述且易於理解。 JSON 解析器是 XML 的替代品;它以結構文字格式表示對象,資料以鍵值對的形式儲存。 JSON 檔案名稱的副檔名為 .json。 JSON 類別允許將物件序列化為 JSON 文字並將 JSON 文字反序列化為物件;內建支援 UTF-8。

文法:

讓我們來看看 JSON(JavaScript 物件表示法)的語法如下,

  • Jobject.Parse()方法是一個物件類別方法,該方法用於將JSON字串解析為C#的物件。它根據鍵值解析字串的數據,然後使用鍵值檢索資料。對於parse方法,語法如下,
Jobject.Parse(jsonStringName);
  • 解析 JSON 字串的另一種方法是使用 JsonConvert.DeserializeObject(),它屬於 JsonConvert 類別。讓我們看看下面的語法,
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
  • 使用 JavaScriptSerialize() 解析 JSON 字串。 De-serialize()方法,該方法僅適用於最新版本的.NET;讓我們看看下面的語法
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);

JSON 解析器在 C# 中如何運作?

JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,易於人類編寫和讀取,並由機器解析和產生。它提供高效能和更少的記憶體空間分配。有許多第三方控制項以 JSON 字串格式從客戶端向伺服器端提供數據,並且必須將 JSON 字串轉換為合適的物件來存取數​​據,例如 Kendo UI grid 等第三方控件,等等。在這裡,有 UTF-8 內建支援。
Jobject.Parse()方法是一個物件類別方法,該方法用於將JSON字串解析為C#的物件。根據鍵值,它解析字串的資料並使用鍵值檢索資料。下面我們來看看 JSON 解析格式和工作流程,

{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
By using the JSON parsing method we can convert and retrieve as follows,
var getResult = JObject.Parse(jsonString);

這樣我們就可以檢索資料了。

解析 JSON 字串的另一種方法是使用 JsonConvert.DeserializeObject(),它屬於 JsonConvert 類,該方法稱為 JsonConvert.DeserializeObject() 將 JSON 字串轉換為 C# 物件。 JSON 字串建立這些物件。此方法使用的格式如下,

JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);

建立一個名為 UserDetails 的類,其屬性為 First_Name 和 Last_Name,以如下所示的 JSON 格式輸入數據,以接收此函數的結果。

var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";

要如下轉換數據,

var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);

使用 JavaScriptSerialize() 解析 JSON 字串。 De-serialize()方法僅適用於.NET以後的版本;此方法不適用於早期版本;為此,我們可以使用前兩種方法將 JSON 字串轉換為 C# 物件。此方法使用的格式如下,

JavaScriptSerializer().Deserialize<CustomClassName>(jsonString);
To create the class with UserDetails as follows,
class UserDetails
{
public string userName { get; set; }
public int userAge { get; set; }
}

輸入使用者詳細資料以將 JSON 轉換為 C# 對象,如下所示,

var input_json = @"{""name"":""Peter Paul"",""age"":49}";

使用下面的serializer()方法將json轉換為c#對象,如下所示,

var resultObject = new JavaScriptSerializer().Deserialize<UserDetails>(input_json);

.NET Framework 支援使用我們與 DataContractJsonSerializer 一起使用的類別來反序列化和序列化為 JSON。透過使用下面的程式碼,我們可以反序列化 JSON 物件;使用該方法,我們需要執行以下一些步驟,

應用程式必須具有 System.Runtime.Serialization 函式庫的參考。

整個類別應該有DataContract,屬性必須有DataMember屬性。

[DataContract]
public class USerDetails
{
[DataMember]
public string First_Name {
get; set;
}
[DataMember]
public string Last_Name {
get; set;
}
}
  • 我們必須使用 WriteObject 方法來序列化對象,並使用 ReadObject 方法來反序列化 JSON 物件。
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";

DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));

Json.NET是工作環境最好的架構。網。 JSON 有許多好處和特點,如下,

  • 它是JSON序列化器在.NET物件和JSON之間的靈活轉換。
  • 會有LINQ to JSON的手動寫入與讀取JSON
  • 它的運行速度比 .NET 更快,並且內建具有高效能資料的 JSON 序列化器。
  • 易於讀取 JSON 並編寫縮排。
  • JSON 和 XML 之間的轉換很簡單。

範例

計畫#1

Jobject.Parse()方法是一個物件類別方法,該方法用於將JSON字串解析為C#的物件。它根據鍵值解析字串的資料並使用鍵值檢索資料。下面我們來看看 JSON 解析的實現,

using System;
using Newtonsoft.Json.Linq;
namespace JSONParsing
{
public class Parsing
{
public static void Main(string[] args)
{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
//Using the JSON-parse method here
var getResult = JObject.Parse(jsonString);
Console.WriteLine("\n\tUsing JSON-Parse Method");
Console.WriteLine(string.Concat("\n\tDisplaying User First and Last Name: ", getResult["user_FirstName"], " " + getResult["user_LastName"], "."));
}
}
}

輸出:

C# 中的 JSON 解析器

Program #2

To parse the JSON String using JsonConvert.DeserializeObject(), which belongs to the JsonConvert class, the method called JsonConvert.DeserializeObject() converts the JSON string to the C# object. The JSON string creates those objects.

using System;
using Newtonsoft.Json;
namespace JSONParse_Program
{
public class UserDetails
{
public string First_Name
{
get; set;
}
public string Last_Name
{
get; set;
}
}
public class Parsing
{
public static void Main(string[] args)
{
var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
//Use of the method
var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
Console.WriteLine("JSON-Parse Method\n");
Console.WriteLine(string.Concat("\nDisplaying First and Last Name, ", result.First_Name, " " + result.Last_Name, "."));
}
}
}

Output:

C# 中的 JSON 解析器

Conclusion

In this article, I have explained the usage of JSON parser; for example, by using those methods, we can parse the JSON in the C# program and extract values.

以上是C# 中的 JSON 解析器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn