Newtonsoft.Json中JsonPath实现的乘积查询问题求助
解决Newtonsoft.Json中JsonPath无法计算乘积的问题
Newtonsoft.Json的JsonPath实现和jsonpath.com采用的规范不同,它不支持在查询语句中进行算术运算、赋值操作,也无法直接返回运算结果——它只能提取或筛选JSON中已存在的节点。针对你的场景,有两种可行方案:
方案1:手动添加计算后的属性到原始JSON(如果UI允许编辑输入)
如果操作界面允许修改输入的JSON内容,直接给每个options元素添加result属性,值为对应price和quantity的乘积:
{ "options": [ { "price": 217, "quantity": 2, "result": 434 }, { "price": 63, "quantity": 5, "result": 315 } ] }
之后使用标准的JsonPath表达式提取结果:$.options[*].result
就能得到预期的[434, 315]。
方案2:分别提取属性后手动计算(如果无法修改原始JSON)
如果UI不允许修改输入的JSON,Newtonsoft.Json的JsonPath无法直接返回乘积结果。你只能先分别提取所有price和quantity值:
- 提取价格:
$.options[*].price→ 得到[217, 63] - 提取数量:
$.options[*].quantity→ 得到[2, 5]
再手动对应计算每一组的乘积。
内容的提问来源于stack exchange,提问作者Sly Redbeard
相关产品推荐
相关产品推荐

