일부 RESTful 웹 서비스를 테스트 할 때 REST-Assured를 사용하고 있습니다. 내가 가져 싶습니다REST-Assured - 값 목록을 가져 오는 JsonPath
{
"status":true,
"responseData":{
"orderLevelReasons":[
{
"reasons":[
{
"reasonId":"129cfea8-b022-4dc8-9811-222a324f46aa",
"reasonName":"COD Amount Mismatch"
},
{
"reasonId":"a881fd5c-626e-438c-8026-646aa2a19098",
"reasonName":"Gave wrong information"
},
{
"reasonId":"543d438a-88cc-487c-86e4-19eecefa9ca7",
"reasonName":"Late delivery"
},
{
"reasonId":"080cd7c1-7a37-48ad-9090-57286d93ea41",
"reasonName":"Parcel not received"
},
{
"reasonId":"5ca3d9b4-0fa2-49da-a534-a6f2e7eccc07",
"reasonName":"Staff did not inform about the parcel arrival"
}
],
"issueName":"ISSUE TYPE 1",
"issueId":"0c2c37a6-62b6-4c28-ab6c-566487d045bd",
"hint":""
},
{
"reasons":[
{
"reasonId":"129cfea8-b022-4dc8-9811-222a324f46aa",
"reasonName":"COD Amount Mismatch"
},
{
"reasonId":"14975b5d-23fb-4735-8082-2e02d6335788",
"reasonName":"Data issue"
},
{
"reasonId":"7e6e8446-3774-4589-9171-8e7ab0a7f73b",
"reasonName":"Delivery BOY did not inform before delivering"
},
{
"reasonId":"543d438a-88cc-487c-86e4-19eecefa9ca7",
"reasonName":"Late delivery"
},
{
"reasonId":"080cd7c1-7a37-48ad-9090-57286d93ea41",
"reasonName":"Parcel not received"
},
{
"reasonId":"8e430c71-f28b-49e4-9946-e0bd5131768b",
"reasonName":"Refuse to come doorstep"
},
{
"reasonId":"515d0fa4-a44c-47eb-a7a2-5ddae778f37a",
"reasonName":"Extra Amount taken By Partner Staff"
}
],
"issueName":"ISSUE TYPE 2",
"issueId":"ac902377-3db2-462a-8e53-48b06d1aff1f",
"hint":""
}
],
"productLevelReasons":[
{
"reasons":[
{
"reasonId":"6129dcb8-1ae5-4d7d-9c95-4c0ec2f69ded",
"reasonName":"Some reason1"
},
{
"reasonId":"febec32b-b243-4509-b46a-20d9f4747ca3",
"reasonName":"Some reason2"
},
{
"reasonId":"d8a492b8-f816-41e6-b45d-5ec29f3a0785",
"reasonName":"Some reason3"
},
{
"reasonId":"c0c98489-6401-455a-9145-f52664d8aff4",
"reasonName":"Some reason4"
},
{
"reasonId":"ef2b4147-ee76-4961-b784-63e848a84167",
"reasonName":"Some reason5"
},
{
"reasonId":"7f4f9657-17b2-407b-aed7-16b221bf3229",
"reasonName":"Some reason6"
},
{
"reasonId":"2aa83be6-60cb-43dc-9273-c41e6047315e",
"reasonName":"Others"
},
{
"reasonId":"c432f563-f835-4710-8055-5ee9e0fe1409",
"reasonName":"Some reason7"
}
],
"orderItemName":"Item1",
"orderItemId":961253,
"hint":""
}
]
},
"message":"OK"
}
: responseData.orderLevelReasons
아래에있는 모든 reasonId
값의
- 목록 여기 내 JSON입니다.
- (다중
orderItemIds
위한 productLevelReasons가있을 수 있기 때문에)가orderItemId
961253
이다responseData.productLevelReasons
미만reasonId
값 목록.
나는 이것을 꽤 많이 봤는데 JsonPath
을 사용하여 달성 할 수 있다는 것을 알았지 만, 각각의 목적에 맞는 JsonPath 표현식이 정확히 무엇인지 알 수 없었습니다.
감사합니다. Tom! 'JsonPath' 표현식을 이런 식으로 사용하려고합니다 : List orderLevelReasons = new ArrayList (); orderLevelReasons = jsonPath.getList ("$. responseData.orderLevelReasons [*]. 이유 [*]. reasonId");'그러나 잘못된 JSON 표현식을 제공합니다. –
https://jsonpath.curiousconcept.com/에서 두 가지 JsonPath 표현식을 모두 확인했으며 두 가지 모두 유효하며 예상되는 결과를 반환합니다. 그러나 Java 코드는 어떤 이유로 오류를 발생시킵니다. : –
@AkshayMaldhure - 내 대답에 대한 업데이 트를 참조하십시오 –