(3) JSONArray & JSONObject

2021. 6. 23. 12:25개발공부/JavaScript


JSON은 언어간의 변환이 자유로운 자료구조 입니다. 이러한 장점 덕분에 서버 - 클라이언트 HTTP 전송 시 JSON 형식으로 돼있는 경우가 많습니다. Java 기준으로 라이브러리 종류도 크게 3가지가 있는데 참고로 알아두면 좋을 것 같습니다.

  • JSON (참고링크)
    • 용량이 큰 파일들을 처리해야 할 때가 있을 수 있는데, 이는 하둡이나 스파크 클러스터(분산 저장소로 빅데이터를 처리하는 프로그래밍 모델)로 어플리케이션을 처리할 때 사용합니다.
    • 벤치마킹 : 대용량 파일의 경우 Jackson과 simple이 우세하지만 다수의 작은 용량을 처리할 경우 GSON과 simple이 우세하단 것을 알 수 있습니다.

 

JSON String을 Java에서 파싱할 때 JSONObject, JSONArray 중 선택해 사용할 수 있습니다.

[] 가 있을 경우 JSONArray로 인식합니다. {} 는 JSONObject로 인식합니다.

파싱이 필요한 로우데이터 :
[{"Key":"key1","Type":"string","Information":{"kr":"주문이 완료되었습니다.","en":"Your order is complete"}},{"Key":"key2","Type":"html","Information":{"kr":"<br>주문 접수가 완료 되었습니다.<br>주문해주셔서 감사합니다.","en":"<br>Your order has been accepted<br>Thank you}}]

JSONArray jsonArr = new JSONArray("[resource]"); //resource엔 로우데이터(String 값)을 넣으면 됩니다.

JSONArray 형태로 만들어주는 코드입니다. JSONArray의 데이터가 JSONObject인 경우 (JSONObject)로 캐스팅 해준다음 length() 와 반복문을 사용해 데이터들을 JSONObject로 받아줍니다.

for (int i = 0; i < jsonArr.length(); i++) { 
JSONObject jsonObj = (JSONObject) textDataToJsonArr.get(i); 
JSONObject jsonSubObj = jsonObj.getJSONObject("Information"); 
String textKr = jsonSubObj.get("kr").toString(); 
}

로우데이터를 보시면 Information key값이 내부 JSONObject를 지니고 있는 이중구조 입니다. 때문에 JSONObject를 두 번 받아준다음 textKr을 추출합니다.

참고자료 json 공식사이트

'개발공부 > JavaScript' 카테고리의 다른 글

[Node.js] Node 17버전 node-sass 에러  (0) 2021.11.15
[Vue.js] Pagination  (0) 2021.10.02
(2) querySelectorAll  (0) 2021.03.15
(1) JSON stringify  (0) 2021.03.13