JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫。在C#中,我們可以使用Json.NET庫(kù)來解析和生成JSON對(duì)象。
Json.NET庫(kù)是一個(gè)開源的.NET庫(kù),它提供了一組簡(jiǎn)單的API,可以將C#對(duì)象轉(zhuǎn)換為JSON對(duì)象,也可以將JSON對(duì)象轉(zhuǎn)換回C#對(duì)象。例如,以下代碼演示了使用Json.NET庫(kù)序列化一個(gè)Person對(duì)象:
class Person { public string Name { get; set; } public int Age { get; set; } } Person person = new Person { Name = "張三", Age = 25 }; string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); // 輸出:{"Name":"張三","Age":25}
上面的代碼使用JsonConvert.SerializeObject方法將Person對(duì)象轉(zhuǎn)換為JSON對(duì)象,然后將其打印到控制臺(tái)上。
我們還可以使用Json.NET庫(kù)從JSON字符串中解析出C#對(duì)象。例如,以下代碼演示了如何將上面的JSON字符串反序列化為Person對(duì)象:
string json = "{\"Name\":\"張三\",\"Age\":25}"; Person person = JsonConvert.DeserializeObject(json); Console.WriteLine("姓名:" + person.Name); Console.WriteLine("年齡:" + person.Age); // 輸出: // 姓名:張三 // 年齡:25
上面的代碼使用JsonConvert.DeserializeObject方法將JSON字符串轉(zhuǎn)換為Person對(duì)象,然后打印出對(duì)象的屬性。
除了基本類型的序列化和反序列化,Json.NET還支持復(fù)雜類型的序列化和反序列化。例如,以下代碼演示了如何將包含數(shù)組和嵌套對(duì)象的復(fù)雜類型序列化為JSON對(duì)象:
class Address { public string Province { get; set; } public string City { get; set; } } class Person { public string Name { get; set; } public int Age { get; set; } public Address[] Addresses { get; set; } } Person person = new Person { Name = "張三", Age = 25, Addresses = new Address[] { new Address { Province = "廣東省", City = "廣州市" }, new Address { Province = "廣東省", City = "深圳市" } } }; string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); // 輸出: // {"Name":"張三","Age":25,"Addresses":[{"Province":"廣東省","City":"廣州市"},{"Province":"廣東省","City":"深圳市"}]}
上面的代碼使用了嵌套類和數(shù)組來構(gòu)造一個(gè)復(fù)雜類型,并使用JsonConvert.SerializeObject方法將其序列化為JSON對(duì)象。
總的來說,Json.NET庫(kù)提供了一組簡(jiǎn)單而強(qiáng)大的API,可以便捷地處理JSON對(duì)象。在C#應(yīng)用程序中,特別是與Web服務(wù)進(jìn)行數(shù)據(jù)交換時(shí),使用Json.NET庫(kù)可以大大提高開發(fā)效率。