[根据条件使用JsonPath从json获取值

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

我关注json-

{
"issues": [{
    "id": 200615,
    "custom_fields": [{
        "id": 166,
        "name": "Severity",
        "internal_name": null,
        "field_format": "list",
        "value": "Major"
    }, {
        "id": 167,
        "name": "Reproducibility",
        "internal_name": null,
        "field_format": "list",
        "value": "Always"
    }, {
        "id": 168,
        "name": "Resolution",
        "internal_name": null,
        "field_format": "list",
        "value": "open"
    }]
}]

}

出于这个json,我想获取问题的值-> custome_fields-> id为167且期望值为-的值-始终(167可以位于json中的任何位置,因此无法对其进行硬编码)

您能不能实现我的价值?

jsonPath.get("issues[0].custom_fields[?(@.id == '167')].value[0]")

导致错误-

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found '[' @ line 1, column 50.
   Object.issues[0].custom_fields[?(@.id ==
rest-assured jsonpath rest-assured-jsonpath
1个回答
0
投票

我得到的错误与您相同,我不知道为什么。

但是,您可以使用findAll json路径方法实现相同的目标,如下所示:

issues[0].custom_fields.findAll { it.id == 167 }.value[0]

打印输出:Always

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