나는이 형식으로 JSON을 반환하는 API 가지고 : 나는 또한의 response
키에 해당 필드가있는 POJO 클래스가봄 RestTemplate지도의 특정 키 값
{
"errors": null,
"someKey1": "someValue1",
"someKey2": "someValue2",
"response": {
"id": 21,
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": {
"key5": [
{
"ABC": "abc",
"XYZ": 1,
"PQR": "pqr"
},
{
"ABC": "abc",
"XYZ": 3,
"PQR": "pqr"
}
]
},
"key6": "value6"
}
}
을 JSON 응답은 someKey1
, someKey2
및 errors
키가 내 용도와 관련이 없기 때문에 응답합니다.
JSON 응답을 Java POJO 클래스에 매핑 할 수 있습니까? 즉, response
키 내의 값만 매핑 할 수 있습니까?
가능한 한 가지 방법은 String 응답을 받아 들여 setter 메서드를 사용하여 POJO에 매핑하는 것입니다.
String apiResponse = restTemplate.exchange(someUrl, HttpMethod.GET, new HttpEntity<>(authHeader), String.class).getBody();
JSONObject jsonObject = new JSONObject(apiResponse);
MyObject myObject = buildNewObject(jsonObject.get("response"));
더 좋은 방법이 있습니까? 이 같은 ? :
ResponseEntity<MyObject> responseEntity = restTemplate.exchange(someUrl, HttpMethod.GET, new HttpEntity<>(authHeader), MyObject.class).getBody().get("response");
MyObject를 Response 클래스를 키로 사용하는 래퍼 클래스로 만들어야했습니다. d에서 응답을 받으면 효과가있었습니다. –