JsonPath array length() returns 键数而不是元素数

JsonPath array length() returns number of keys instead of elements

我有以下数组:

"books" : [ {
  "title" : "History",
  "id":1

}, {
  "title" : "The Robotics",
  "id":2

}, {
  "title" : "The World",
   "id":3
} ]

我的 JsonPath 表示法是这样的:$.books[?(@.title == 'History')].length()。我期望它是 return 1(因为它匹配一本书),但它是 returns 2,这是第一个对象(匹配)中的一些键。我怎样才能 force/change 它到 return 元素的数量,而不是对象中的键?

我正在为 java 使用 this 库。

问题出在点(.)上。你只有一个,但你需要两个。这有效:

$..books[?(@.title == 'History')].length()