.Net中的Json操作类用法分析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。在 .Net 中,我们可以使用 Json 操作类来处理 JSON 数据。本文将全面讲解 .Net 中 Json 操作类的用法和常见的示例。
System.Text.Json 使用
System.Text.Json 是 .Net Core 3.0 引入的一个 JSON 操作类库,它提供了压缩性能更高、生命周期更短的 API 和更好的一致性。它支持简单类型序列化和反序列化,以及深度嵌套,还支持 JSONPath 查询。下面是一些常见的用法。
序列化
使用 JsonSerializer.Serialize 方法将对象序列化为 JSON 字符串:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var person = new Person { Name = "Tom", Age = 20 };
var jsonString = JsonSerializer.Serialize(person);
序列化结果为:{"Name":"Tom","Age":20}
。
反序列化
使用 JsonSerializer.Deserialize 方法将 JSON 字符串反序列化为对象:
var jsonString = "{\"Name\":\"Tom\",\"Age\":20}";
var person = JsonSerializer.Deserialize<Person>(jsonString);
路径查询
使用 JsonDocument.Parse 方法将 JSON 字符串解析为 JsonDocument 对象,然后通过索引或路径查询特定字段:
var jsonString = "{\"Name\":\"Tom\",\"Friends\":[{\"Name\":\"Amy\"},{\"Name\":\"Jack\"}]}";
using var jsonDoc = JsonDocument.Parse(jsonString);
var friends = jsonDoc.RootElement.GetProperty("Friends");
foreach (var friend in friends.EnumerateArray())
{
Console.WriteLine(friend.GetProperty("Name").GetString());
}
输出结果为:
Amy
Jack
Newtonsoft.Json 使用
Newtonsoft.Json 是第三方的 .Net JSON 操作类库,它比 .Net 自带的 Json 操作类功能更加强大,并且广泛被应用于各种场景。下面是一些常见的用法。
序列化
使用 JsonConvert.SerializeObject 方法将对象序列化为 JSON 字符串:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var person = new Person { Name = "Tom", Age = 20 };
var jsonString = JsonConvert.SerializeObject(person);
序列化结果为:{"Name":"Tom","Age":20}
。
反序列化
使用 JsonConvert.DeserializeObject 方法将 JSON 字符串反序列化为对象:
var jsonString = "{\"Name\":\"Tom\",\"Age\":20}";
var person = JsonConvert.DeserializeObject<Person>(jsonString);
路径查询
使用 JObject.Parse 方法将 JSON 字符串解析为 JObject 对象,然后通过索引或路径查询特定字段:
var jsonString = "{\"Name\":\"Tom\",\"Friends\":[{\"Name\":\"Amy\"},{\"Name\":\"Jack\"}]}";
var jObject = JObject.Parse(jsonString);
var friends = jObject["Friends"];
foreach (var friend in friends)
{
Console.WriteLine(friend["Name"]);
}
输出结果为:
Amy
Jack
总结
无论是 System.Text.Json 还是 Newtonsoft.Json,它们都是强大且易于使用的 JSON 操作类库。选择哪个库取决于你的具体需求。这里只是介绍了 Json 操作类库中的一些常见用法,更多用法和细节请参考文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.Net中的json操作类用法分析 - Python技术站