【问题标题】:Multiple filters in JSONPathJSONPath 中的多个过滤器
【发布时间】:2016-06-24 19:46:18
【问题描述】:

我正在尝试使用 JSONPath 提取数据,并使用多个过滤器。

在下面的 JSON 中,有些有“program.seriesId”,有些没有。我想提取没有“program.seriesId”的第一个“值”

当我将下面的 JSONPath 放入 JSON 求值器http://jsonpath.com/

$.data[?(@.program.seriesId)].value

我得到 123 AND 345。但是我只想要 123 的第一个“值”。

我尝试了以下多个过滤器 JSONPaths,但都没有返回匹配项:

$.data[?(@.program.seriesId)][0].value
$.data[?(@.program.seriesId) && 0].value
$.data[?(@.program.seriesId) and 0].value

返回第一个没有“program.seriesId”的“value”的 JSONPath 查询是什么?

{
    "data": [
    {
        "value": "123",
        "program": {
            "id": "011",
            "seriesId": "111"
        }
    },
    {
        "value": "234",
        "program": {
            "id": "022"
        }
    },
    {
        "value": "345",
        "program": {
            "id": "033",
            "seriesId": "333"
        }
    }]
}

【问题讨论】:

标签: json filter jsonpath


【解决方案1】:

当我遇到这个问题时,我也在从对象数组中搜索打印1st result 对象。

我发现目前无法获得基于索引的结果。 Github Open issue link ,开放一年多。

否则它可能是这样的,

$.data[?(@.program.seriesId)][0].value

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2014-07-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多