如何检查JsonPath中的多个键

问题描述 投票:1回答:1

我正在尝试使用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对象。在andbpm之间应该有一个time运算符。

这是我的查询:

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

但是我收到一个错误消息,说,后有一个意外字符'767'。我在做什么错?

c# json json.net jsonpath
1个回答
1
投票

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

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

小提琴:https://dotnetfiddle.net/gpU56p

© www.soinside.com 2019 - 2024. All rights reserved.