[NewtonSoft.Json] JObject 与 JToken 的转换

本文探讨了如何使用NewtonSoft.Json库中的JToken进行Json数据的动态解析,重点讲解了JToken类型转换及其在处理字符串、日期等常见类型和复杂对象时的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入NewtonSoft.Json;

有时需要动态一层一层解析Json数据,JObject是一个Json对象,但是当我们取某个key的值后,得到的是一个JToken对象,JOject就是继承自JToken,所以可以理解为,JOjbect实例,就是一种JToken类型,但是仅是其中的一种。JToken内部实现了 operator (type) 类型强转,包括常用的一些值类型bool, byte,short, ushort ,uint, ulong, double, TimeSpan, GUID, DateTime, DateTimeOffset等等 以及引用类型string的类型强转,也提供了这些类型的反向强转 type operator(JToken), 将它们强置转换为JToken类型。但是它不包括JObject的强转。通常JTokenJToken代码如下:

string json = "{}";    //json字符串
string sValue = string.Empty;
JObject joValue = JObject.Parse(json);
foreach (var key in keys)
{
    JToken _token = joValue[key];
    if(_token is null)
    {
        return default;
    }
    if(_token.Type == JTokenType.String)
    {
        sValue = (string)_token;
        break;
    }else if(_token.Type == JTokenType.Object)
    {
        joValue = JObject.FromObject(_token);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值