본문 바로가기
Android

[깡샘의 안드로이드 프로그래밍] 정리 26 - JSON 파싱

by 들풀민들레 2018. 1. 6.
본 글은 [깡샘의 안드로이드 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다.
좀더 자세한 내용은 책을 통해 확인해 주세요.

 

 

 

 

 

 

24장. 네트웍 정보 활용

 

24.2.2. JSON 파싱

 

서버와 통신할 때 데이터가 JSON 타입으로 전송되는 경우도 있습니다. 이때는 JSON 파싱을 이용하여 원하는 데이터를 얻어야 합니다. 안드로이드에서 JSON 파싱은 JSONObject 클래스와 JSONArray 클래스를 이용합니다.

 

 

JSONObject은 JSON의 { }로 묶이는 부분의 내용을 표현하기 위한 클래스이며, JSONArray는 JSON의 [ ]로 묶이는 부분의 내용을 표현하기 위한 클래스입니다. [ ]의 표현식은 그 안에 { }을 여러 개 포함할 수 있는 형태이므로 { } 하나가 JSONObject 객체로 표현되고, 이 JSONObject 객체 여러 개를 담기 위한 객체가 JSONArray입니다.

 

JSONObject root = new JSONObject(json);

 

JSONObject에 파싱할 JSON 문자열을 대입하면 최상위 JSONObject 객체가 만들어지며, 그 하위에 JSONObject 혹은 JSONArray 객체 여러 개가 만들어집니다. 그림 24-5의 JSON에서 "id", "cod" 값 등은 루트 JSONObject 객체 하위에 있으므로 getString ( ) 함수를 이용하여 데이터를 얻으면 되고, "main"은 그 하위에 또 다른 내용이 있으므로 루트 객체 하위의J SONObject를 얻어서 사용합니다.

 

String name=root.getString("name");

JSONObject main=root.getJSONObject("main");

String temp=main.getString("temp");

JSONArray array=root.getJSONArray("weather");

JSONObject arrayItem=array.getJSONObject(0);

 

"weather"는 [ ]로 묶여 있으므로 JSONArray 타입으로 받아 그 하위의 { } 내용을 JSONObject로 얻어서 사용합니다.