我有一个这样的JSON:
{
"options": [
{
"price": 217,
"quantity": 2
},
{
"price": 63,
"quantity": 5
}
]
}
我想用JsonPath对其进行查询,以获得"Options"数组中每个元素的"价格"和"数量"的乘积.
我用这site来玩弄语法.我实际上找到了一种方法:
options[?(@.result = @.price * @.quantity)].result
此语法向每个元素添加一个属性‘Result’,并将产品存储在其中,如下所示:
[
{
"price": 217,
"quantity": 2,
"result": 434 // yay!
},
{
"price": 63,
"quantity": 5,
"result": 315 // yay!
}
]
所以最终的结果就是我想要的:
[
434,
315
]
我真的不需要设置任何属性.我只想要这样的结果.
问题是-它不能在C#应用程序(使用Newtonsoft.Json)中工作.它无法解析该查询. 我事先try 在JSON中引入该属性,但也不起作用.
json = JObject.Parse(@"{}"); // same JSON as above
var result = json.SelectTokens("options[?(@.result = @.price * @.quantity)].result"); // exception
你能帮我弄清楚吗?
Note:我只有用户界面可供我支配.不能访问代码,不能访问LINQ,不能调用API.我只是碰巧知道底层的实现.