Newtonsoft.Json中的JObject,JToken,JArray,JsonConvert

本文介绍了.NET框架中的Newtonsoft.Json库中JObject、JArray、JToken和JsonConvert的作用,它们分别用于操作JSON对象、数组、泛型数据类型和进行对象与JSON之间的转换。
摘要由CSDN通过智能技术生成

1.JObject: 表示一个JSON对象,这是一种键值对无序集合,其中键为字符串,值可以是任何有效的JSON数据类型(如字符串、数字、布尔值、null、数组或另一个对象)。JObject提供了以强类型方式操作JSON对象的方法和属性,使你能够添加、移除、修改或查询其属性。

示例:

var json = @"{
    'name': 'John Doe',
    'age': 30,
    'isEmployed': true
}";

JObject obj = JObject.Parse(json);
string name = (string)obj["name"]; // 获取name属性的值
int age = (int)obj["age"]; // 获取age属性的值
bool isEmployed = (bool)obj["isEmployed"]; // 获取isEmployed属性的值

obj["age"] = 31; // 修改age属性的值
obj.Add("address", "123 Main St."); // 添加新的address属性

2.JToken: 是 Newtonsoft.Json 库中所有JSON数据类型的基类,包括JObject、JArray、JValue等。它提供了通用的方法来访问、遍历和操作JSON数据。当你不确定JSON数据的具体类型时,可以使用JToken进行处理。

示例:

JToken token = obj["age"];
double value = token.Value<double>(); // 将token值转换为double类型

foreach (JToken childToken in token.Children())
{
    // 遍历并处理子Token
}

3.JArray: 表示一个JSON数组,即有序的值列表。数组中的元素可以是任何有效的JSON数据类型。JArray提供了添加、删除、查询和修改数组元素的方法。

示例:

var jsonArray = JArray.Parse(@"[
    'apple', 'banana', 'orange'
]");

string firstItem = (string)jsonArray[0]; // 获取第一个元素的值
jsonArray.Add("pear"); // 向数组末尾添加新元素

4.JsonConvert: 提供了一系列静态方法,用于在.NET对象与JSON字符串之间进行序列化(将对象转换为JSON字符串)和反序列化(将JSON字符串解析为.NET对象)。它支持多种数据类型、自定义转换器、日期格式化等高级功能。

示例:

// 序列化(对象转JSON)
Person person = new Person { Name = "John Doe", Age = 30 };
string personJson = JsonConvert.SerializeObject(person); // 输出:{"Name":"John Doe","Age":30}

// 反序列化(JSON转对象)
string json = "{\"Name\":\"Jane Smith\",\"Age\":25}";
Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);

总结来说,JObject、JArray、JToken是Newtonsoft.Json库中用于操作JSON结构的核心类,分别对应JSON对象、JSON数组和所有JSON数据类型的基类。而JsonConvert类则提供了方便的序列化和反序列化方法,使得.NET对象与JSON字符串之间的转换变得简单易行。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值