如何编写正确的JObject选择器提取指定JSON结构的onHand属性值
正确选择器写法
你可以直接使用以下代码提取目标值:
JObject o = JObject.Parse(response.Content); // 方式1:使用SelectToken匹配 QOH = o.SelectToken("response['1017'].warehouses['3'].byLocation['6'].onHand").ToString(); // 方式2:使用JObject索引器逐层取值(更不容易出现路径语法错误) QOH = o["response"]["1017"]["warehouses"]["3"]["byLocation"]["6"]["onHand"].ToString();
错误原因说明
- 你原有代码中所有的
[0]都是多余的:你提供的JSON结构里,response、1017、warehouses、3、byLocation、6全部是对象类型,不是数组类型,不需要用数组索引[0]取值。 - 纯数字组成的属性名不能直接用
.属性名的格式访问:Newtonsoft.Json的JSONPath语法要求,纯数字/数字开头的属性名必须用['属性名']格式包裹,否则会被解析为数字索引,导致匹配失败。
内容的提问来源于stack exchange,提问作者Brent Allison
相关产品推荐
相关产品推荐

