如何检查 JsonPath 中的多个键

How to check multiple keys in JsonPath

我正在尝试使用 JsonPath 在 JSON 数组中查找对象。 这是我的 JSON:

[
  {
    "bpm": "766",
    "time": "20:14:57",
    "confidence": "0"
  },
  {
    "bpm": "766",
    "time": "20:14:57",
    "confidence": "0"
  },
  {
    "bpm": "767",
    "time": "20:14:33",
    "confidence": "0"
  }
]

我将 SelectToken 与以下 JsonPath 查询一起使用,以尝试使用两个键 bpmtime 查找 JSON 对象。 bpmtime 之间应该有一个 and 运算符。

这是我的查询:

$.[?(@.bpm=='767',@.time=='20:14:33')]

但我收到一条错误消息,提示 '767' 后有一个意外字符 ,。我做错了什么?

在 Newtonsoft 的 JsonPath 实现中,and 运算符是双符号 &&,而不是逗号 ,。如下所示更改您的表达式,它应该可以正常工作:

var array = JArray.Parse(json);
var obj = array.SelectToken("$.[?(@.bpm=='767' && @.time=='20:14:33')]");

Fiddle: https://dotnetfiddle.net/gpU56p