带有联合的Json.net JsonPath过滤器

时间:2018-07-17 18:51:15

标签: c# .net json.net jsonpath

我正在尝试动态构建JsonPath,以根据其所有属性在数组中查找元素。不能使用静态linq查询,因为我的代码需要使用任何数组。我在C#.net项目中使用的是Newtonsoft.Json 11.0.2。

我正在尝试下面的JsonPath,但遇到Unexpected character while parsing path indexer: ,异常。似乎可以使用任何Flow Communications版本在jsonpath.curiousconcept.com JsonPath测试器上工作。

任何帮助将不胜感激!谢谢!

JsonPath:$.arr[?(@.Amount == '1000'),?(@.Name == 'Item A')]

Json:

{ "arr":[ { "Name":"Item A", "Amount":1000 }, { "Name":"Item B", "Amount":2000 }, { "Name":"Item C", "Amount":3000 }, { "Name":"Item D", "Amount":4000 } ] }

1 个答案:

答案 0 :(得分:2)

我假设在jsonpath.curiousconcept.com上仅忽略了第二部分。正确的JsonPath是:

$.arr[?(@.Amount == 1000 && @.Name == 'Item A')]