如何使用方法 TryGetPropertyValue 或 JSON 路径从 JToken 中的 属性 读取值?
How to read value from property inside JToken by either using the method TryGetPropertyValue or JSON path?
给定一个名为 distance 的 JToken
,其内容如下
{ "232": { "travelDistance": 25.0 } }
我想从中读取字段 travelDistance。首先我尝试了这个
distance.TryGetPropertyValue("travelDistance", float.MaxValue)
但这 returns 后备值 float.MaxValue
。然后我尝试使用 JSON 路径
distance.SelectToken("$.travelDistance")
但是这个returnsnull
。这些是我的调试结果
如何读取 属性 travelDistance 的值?
使用JObject
您可以读取字段值
var jObj = JObject.Parse(jsonString);
var result = Convert.ToDecimal(jObj["232"]["travelDistance"]);
或
var result1 = Convert.ToDecimal(jObj.SelectToken("232.travelDistance"));
或
var result2 = Convert.ToDecimal(jObj.SelectToken("*.travelDistance"));
或
var result3 = jObj.SelectTokens("*.travelDistance")
.Select(x => Convert.ToDecimal(x))?
.FirstOrDefault();
给定一个名为 distance 的 JToken
,其内容如下
{ "232": { "travelDistance": 25.0 } }
我想从中读取字段 travelDistance。首先我尝试了这个
distance.TryGetPropertyValue("travelDistance", float.MaxValue)
但这 returns 后备值 float.MaxValue
。然后我尝试使用 JSON 路径
distance.SelectToken("$.travelDistance")
但是这个returnsnull
。这些是我的调试结果
如何读取 属性 travelDistance 的值?
使用JObject
您可以读取字段值
var jObj = JObject.Parse(jsonString);
var result = Convert.ToDecimal(jObj["232"]["travelDistance"]);
或
var result1 = Convert.ToDecimal(jObj.SelectToken("232.travelDistance"));
或
var result2 = Convert.ToDecimal(jObj.SelectToken("*.travelDistance"));
或
var result3 = jObj.SelectTokens("*.travelDistance")
.Select(x => Convert.ToDecimal(x))?
.FirstOrDefault();