본 글은 [깡샘의 안드로이드 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다.
좀더 자세한 내용은 책을 통해 확인해 주세요.
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로 얻어서 사용합니다.
'Android' 카테고리의 다른 글
[깡샘의 안드로이드 프로그래밍] 정리 28 - FCM (1) | 2018.01.06 |
---|---|
[깡샘의 안드로이드 프로그래밍] 정리 27 - Volley API 를 이용한 HTTP 통신 (0) | 2018.01.06 |
[깡샘의 안드로이드 프로그래밍] 정리 25 - GoogleMap (0) | 2018.01.06 |
[깡샘의 안드로이드 프로그래밍] 정리 24 - LocationManager (0) | 2018.01.06 |
[깡샘의 안드로이드 프로그래밍] 정리 23 - 주소록 데이터 획득 (0) | 2018.01.06 |