본문 바로가기
TIL : Today I learned (or Week)

TIL 230710 : 다중 JSON 다루기 (JSONObject, JSONArray)

by 우인입니다 2023. 7. 10.

예전에 Post 안에 Reply를 그냥 리턴해서 오류가 난 적이 있다.

JSON안에 값이 JSON의 배열인 형태였는데, 오늘 강의를 보며 이를 다루는 걸 다시봤다.

 

 

 

String타입으로 받아온 JSON데이터.

ResponseEntity에서 getBody를 통해 가져왔다.

 

 

Body의 내용을 보면 키-값으로 이루어진 맵의 형태이지만,

"items"키의 값은 배열 안에 또다른 JSON형태의 데이터들이다.

 

 

이렇게 값이 배열인 경우, 배열의 하나하나의 값이 JSON인 배열인 경우 JSONArray를 통해 배열형태로 가져올 수 있다.

  - 키값을 직접 명시해서 해당 키의 값에 해당하는 배열을 가져오는 형태.

 

(우) items항목만 가져온 List형태

그런 뒤 items라는 배열을 반복하며 Object인 item을 JSONObject로 형변환해서 ItemDto로 생성해준다.

 

(우) 생성되며 itemDto 초기화

생성자를 보면 직접 JSONObject를 받아주는 값으로 각각의 키값을 명시하며 get[데이터타입]메소드로 값을 가져온다.

 

 

 

List<ItemDto>로 최종 출력된 모습.

 


https://thiswooin.tistory.com/40

 

TIL 230630 : (이어서) Entity반환시 문제. (Dto의 중요성)

https://thiswooin.tistory.com/39 TIL 230629 : List to JSON 객체 반환시 오류 (jackson) 오늘도 어김없이 이해할 수 없는 타이밍에 찾아오는 오류. 단순히 GET메소드로 포스트ResponseDto를 객체로 리턴받는 건데, 하

thiswooin.tistory.com

이전에 위 내용을 몰랐을 때 내부 dto를 따로 만들어서 해결했던 적이 있다.

어떤 방법이 더 좋을 지 질문을 좀 해봐야 할듯하다.

 

더불어서 교재 구매도.. 필요해보인다!