JSON-Path仅返回单个字符而不是完整值

时间:2019-05-15 07:54:28

标签: jsonpath json-path-expression

我在从特定过滤器选择中选择完整值时遇到问题。

输入JSON(来自github-api响应):

[
  {
    "name": "V2.X.X",
    "prerelease": true
  },
  {
    "name": "2.0.0",
    "prerelease": false
  },
  {
    "name": "1.9.0",
    "prerelease": false
  }
]

JSON路径:

$.[?(@.prerelease==false)].name

结果:

[
  "2.0.0",
  "1.9.0"
]

我只需要第一个条目(“ 2.0.0” ),所以我尝试了以下操作:

JSON路径:

$.[?(@.prerelease==false)].name[0]

但是结果是:

[
  "2",
  "1"
]

是否知道如何选择完整的第一项?

我在https://jsonpath.com/上测试了JSONPatch

BR

apiMan

1 个答案:

答案 0 :(得分:1)

恐怕这是jsonpath的已知问题。

请参见此处:https://github.com/json-path/JsonPath/issues/272https://github.com/json-path/JsonPath/issues/375

不幸的是,这种情况似乎不会很快消失-这个问题是在2.5年前提出的。令人讨厌的是,$.[?(@.prerelease==false)].name[0]曾经在jsonpath的0.9.1版中工作,然后在某个时候被删除。

建议的当前解决方法是将过滤后的表达式的项目读入内存中的集合,并在返回时选择第一个。

无论如何,您不是第一个遇到此问题的人,请参阅: