📅  最后修改于: 2023-12-03 15:27:56.227000             🧑  作者: Mango
JSON 是一种常见的轻量级数据交换格式,它被广泛应用于 Web 开发、数据传输等领域。在 C# 编程中,我们通常使用 Newtonsoft.Json 库来处理 JSON 数据。
本文将介绍如何使用 C# 解析 JSON 数据,包括序列化和反序列化操作。
序列化是将 C# 对象转化为 JSON 数据的过程。可以使用 Newtonsoft.Json 库中的 JsonConvert 类实现序列化操作。
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void Serialize()
{
var person = new Person { Name = "John", Age = 27 };
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
}
上述代码中,我们定义了一个 Person 类,并创建了一个 Person 对象。接着,我们使用 JsonConvert.SerializeObject 方法将 Person 对象序列化为 JSON 字符串。
输出结果为:
{
"Name": "John",
"Age": 27
}
值得注意的是,我们需要在 Person 类的属性上使用 get 和 set 访问器,以便 JsonConvert 类能够正确读取和写入属性值。
反序列化是将 JSON 数据转化为 C# 对象的过程。我们同样可以使用 JsonConvert 类实现反序列化操作。
public static void Deserialize()
{
string json = @"{
'Name': 'John',
'Age': 27
}";
Person person = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine(person.Name);
Console.WriteLine(person.Age);
}
上述代码中,我们定义了一个 JSON 字符串,然后使用 JsonConvert.DeserializeObject 方法将其反序列化为 Person 对象。
输出结果为:
John
27
在实际应用场景中,JSON 数据往往会嵌套包含多个对象或数组。我们可以使用 JObject、JArray 等类型来处理复杂的 JSON 数据。
public static void DeserializeComplexJson()
{
string json = @"{
'Name': 'John',
'Age': 27,
'Address': {
'Street': '123 Main St.',
'City': 'New York'
},
'PhoneNumbers': [
{
'Type': 'Home',
'Number': '555-1234'
},
{
'Type': 'Work',
'Number': '555-5678'
}
]
}";
JObject obj = JObject.Parse(json);
string name = (string)obj["Name"];
int age = (int)obj["Age"];
string street = (string)obj["Address"]["Street"];
string city = (string)obj["Address"]["City"];
JArray phones = (JArray)obj["PhoneNumbers"];
foreach (JObject phone in phones)
{
string type = (string)phone["Type"];
string number = (string)phone["Number"];
Console.WriteLine("{0}: {1}", type, number);
}
}
上述代码中,我们定义了一个包含嵌套对象和数组的 JSON 字符串,并使用 JObject.Parse 方法将其解析为一个 JObject 对象。接着,我们使用 [] 操作符来获取对象属性的值,以及遍历数组中的对象。
输出结果为:
Home: 555-1234
Work: 555-5678
本文介绍了如何在 C# 中使用 Newtonsoft.Json 库来处理 JSON 数据,包括序列化和反序列化操作。通过掌握本文所述的技术,您可以方便地在 C# 编程中处理常见的 JSON 数据,完成各种业务需求。