쌓고 쌓다
Expected BEGIN_ARRAY but was BEGIN_OBJECT 본문
다음과 같은 JSON을 받았다.
{
"status": "success",
"data": {
"id": 11,
"name": "name!",
"title": "title!",
"content": "content!",
"regDate": "2023-11-20T14:04:14"
},
"message": "성공했다."
}
다음과 같은 클래스로 파싱을 시도했더니..
public class InquiryListResponse {
private String status;
private List<InquiryData> data;
private String message;
}
Expected BEGIN_ARRAY but was BEGIN_OBJECT !!!!!
ARRAY를 예측했더니 OBJECT가 나왔다는 이야기다.
그렇다! 내가 data에 담은것은 다음과 같은 리스트가 아니라 오브젝트였다.
Inquiry inquiry = inquiryService.getInquiry(id);
response.setData(inquiry);
보면 Inquiry를 담아버렸다. 리스트에 담아서 넣어줘야하는데 말이다!!
다음과 같이 리스트에 담아주자!
Inquiry inquiry = inquiryService.getInquiry(id);
List<Inquiry> listInquiry = Arrays.asList(inquiry); // 리스트로 변환하는 과정 필수 !!
ApiResponse response = new ApiResponse();
response.setStatus(ApiResponse.SUCCESS_STATUS);
response.setData(inquiry);
다음과 같이 JSON 응답 data가 [ ] 에 담겨있게 바꼈다.!
이렇게 리스트는 []에 담겨줘야한다!
{
"status": "success",
"data": [
{
"id": 11,
"name": "name!",
"title": "title!",
"content": "content!",
"regDate": "2023-11-20T14:04:14"
}
],
"message": "성공했다."
}
'프로그래밍 > java' 카테고리의 다른 글
equals, hashCode와 @EqualsAndHashCode (2) | 2024.06.07 |
---|---|
코딩테스트를 위한 자바 자료구조 및 메서드 요약 (2) | 2024.04.13 |
제네릭? (0) | 2023.11.24 |
Lombok 사용시 Boolean 타입 @Data, @Getter 주의 (0) | 2023.10.01 |
java.util.NoSuchElementException: No value present (0) | 2023.09.11 |
Comments