请放心 - 无效 JSON 表达式:Script1.groovy:1:意外输入:'['
Rest assured - Invalid JSON expression: Script1.groovy: 1: Unexpected input: '['
我正在尝试使用 JSON 表达式
检索具有“类型”:“系统”的工作流的 ID
方法:
public static int getSystemWorkflowId(final Map<String, String> cookies) {
return workflow.get(cookies).then().extract().jsonPath().getInt("$..workflows[?(@.type =='system')].id");
}
有效载荷
{
"workflows": [
{
"id": 1,
"name": "Recruitment workflow",
"type": "system",
"options": [
],
"active": 1
},
{
"id": 3,
"name": "TestWorkflow",
"options": [
],
"active": 1
}
]
}
错误:
java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: Unexpected input: '[' @ line 1, column 39.
$..workflows[?(@.type =='system')].id
我已经在在线评估器中测试了表达式,它似乎有效...enter image description here
谢谢!
Rest-Assured 中的 JsonPath 不是 JsonPath Jayway,请不要混淆。
Rest-Assured 中的 JsonPath 利用 GPath groovy 查找和提取值。
正确的表达方式是:
.getInt("workflows.find {it.type == 'system'}.id")
我正在尝试使用 JSON 表达式
检索具有“类型”:“系统”的工作流的 ID方法:
public static int getSystemWorkflowId(final Map<String, String> cookies) {
return workflow.get(cookies).then().extract().jsonPath().getInt("$..workflows[?(@.type =='system')].id");
}
有效载荷
{
"workflows": [
{
"id": 1,
"name": "Recruitment workflow",
"type": "system",
"options": [
],
"active": 1
},
{
"id": 3,
"name": "TestWorkflow",
"options": [
],
"active": 1
}
]
}
错误:
java.lang.IllegalArgumentException: Invalid JSON expression: Script1.groovy: 1: Unexpected input: '[' @ line 1, column 39. $..workflows[?(@.type =='system')].id
我已经在在线评估器中测试了表达式,它似乎有效...enter image description here
谢谢!
Rest-Assured 中的 JsonPath 不是 JsonPath Jayway,请不要混淆。
Rest-Assured 中的 JsonPath 利用 GPath groovy 查找和提取值。
正确的表达方式是:
.getInt("workflows.find {it.type == 'system'}.id")