나머지를 사용하여 내 마이크로 서비스에 통합 테스트를 작성하고 있습니다. 나는 Json 페이로드를 가지고 있는데, 이것으로부터 리턴된다.RestAssured - JsonPath는 필터 조건이 주어지면 객체 배열에서 일치하는 객체의 속성을 필터링합니다.
{
"sessionQuestions":[
{
"id":1272,
"sessionId":1146,
"questionId":"1002",
},
{
"id":1273,
"sessionId":1146,
"questionId":"1004",
}
]
}
questionId 값이 주어지면 sessionquestion의 id를 찾아야합니다. 그렇다면 나는 그들을 내 주장에서 비교할 필요가있다. questionId 값을 주어진 sessionQuestion에서 ID를 가져 오는 데 어려움을 겪고 있습니다. 이 일을 끝내기 위해 JsonPath를 사용하고 있습니다. 여기 Json 경로 표현이 있습니다.
new JsonPath(response).get("$.sessionQuestions[?(@.questionId=='1002')].id");
오류가 발생합니다.
java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found '[' @ line 1, column 45.
nRootObject.$.sessionQuestions[?(@.quest
^
1 error
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
나는 잘 작동이 온라인
evaluator에 같은 JSON 경로 식을 시도했다. 나는 사용하고있다
json-path-2.9.0.jar
내가 뭘 잘못하고있는거야? 어떤 도움이라도 대단히 감사합니다.
행운을 빈다. 내가 사용하고있는 Json 경로 버전으로 질문을 업데이트했습니다. 감사. –
불행히도'parse'와'read' 메소드가 없습니다. –
답을 업데이트했습니다. 귀하의 다가오는 게시물에 좀 더 구체적으로 노력하십시오 :) 또한 여기를보십시오 https://github.com/rest-assured/rest-assured/wiki/Usage – ddarellis