JSON(JavaScript 物件表示法)解析與語言無關,是一種輕量級資料交換格式、自描述且易於理解。 JSON 解析器是 XML 的替代品;它以結構文字格式表示對象,資料以鍵值對的形式儲存。 JSON 檔案名稱的副檔名為 .json。 JSON 類別允許將物件序列化為 JSON 文字並將 JSON 文字反序列化為物件;內建支援 UTF-8。
文法:
讓我們來看看 JSON(JavaScript 物件表示法)的語法如下,
Jobject.Parse(jsonStringName);
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);
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; } }
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";
DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));
Json.NET是工作環境最好的架構。網。 JSON 有許多好處和特點,如下,
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"], ".")); } } }
輸出:
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:
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中文網其他相關文章!