JObject对象如何获取深度属性值&不确定键是否具有获得的值&获取具有特殊字符的键值

作者:以沫      发布时间:2021-04-18      浏览量:0
我们经常使用JObject对象接受数据,

我们经常使用JObject对象接受数据,并通过JObject快速获取指定键的值。顺序没有问题,但是如果遇到以下JObject对象,如何快速获得数据?

如何获得键的值:treds2.指纹?

如下:

jObject jobj=Newtonsoft.Json.JsonConvert.DeserializeObject<;Newtonsoft.Json.Linq.JObject>;(str);

字符串finger=jobj[“details”][“threeds2.fingerprint”];

但是这样写是存在风险的。首先,我们不添加任何关键判断,很容易报告异常,因此更改方式:

复制代码

Newtonsoft.Json.Linq.JObject Jobs j=Newtonsoft.Json.JsonConvert.DeserializeObject(Str);

if(作业/p>ContainsKey(“Details”))

Newtonsoft.Json.Linq.JTokenjTokj=(jtoken.Value<;string>;(“threeds2.challengeResult”)![“Details”];

如果是(jtoken.Value<;string>;(“threeds2.challengeResult”)![“Details”];

字符串Finger=jtoken[“threeds2.challengeResult”].ToString();

}

复制代码

复制代码

为了不报告异常(这不是很好,最好的方案是:

荷jes.electToken(“Details.[‘trieds2.指纹’]”)。值()

焦点:这里需要注意的是,SelectToken方法支持我们输入深键的访问路径,以获取数据,该数据由父级和子级使用。“.”连接;如果遇到包含特殊符号点的键,请使用括号和单引号对其进行包装。如果路径错误或没有返回值NULL,则此写入不会引发异常。

深圳网站建设www.sz886.com