[ Android ] Json 방식으로 묶기.
구조체처럼 변수를 한번에 실어 나르고 싶지만, 그 타입이 불특정할때.. 객체 자체를 전송시키지만, 그값이 데이터 베이스나 그런곳에 들어가기엔 정규화되어 잇지 않을때 사용하기 좋은것이 바로 JSON 방식이다.
JSON 방식은 크게 2개가 묶여 있다.
Array 와 Object 이 두가지가 그것이다.
배열은 [ 1, 2, 3 ] 으로 표현되며 객체는 {"keyword":"value,"keyword2","value2"} 식으로 표현되는데,
이 array 안에 object 를 담애 낼수 있으며 , object 안에 array를 담아 낼 수도 있다.
간단하게 배열 안에 여러개의 변수가 담긴 Obejct 를 넣는 방법을 예시로 들어보겠다.
넣고자 하는 문자열은 다음과 같다.
[{"key3":"test3","key2":"test2","key1":"test"}]
위에 설명에 따라 한행의 배열안에 OBJECT가 들어가 있고 그 오브젝트는 key3 key2 key1 로 들어가 있다. 각 키는 하나의 값을 가지고 있다.
[ example ]
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class Json { String json_ex = "[{\"key01\":\"aaaa\",\"key02\":\"bbbb\"}]"; void jsonCombine(){ JSONArray array = new JSONArray(); JSONObject obj = new JSONObject(); try{ obj.put("key1", "test"); obj.put("key2", "test2"); obj.put("key3", "test3"); array.put(obj); Log.e("json parser", "=================="+array.toString());
}catch(Exception e){ Log.e("JSON Combine",":::::array Error "+e.toString()); }
} void jsonParsor(){
String a=null; String b=null;
try { JSONArray ja = new JSONArray(json_ex); JSONObject jsonRoot =ja.getJSONObject(0); //0번째 라인...다중 배열시엔 for문
a = jsonRoot.getString("key01"); b = jsonRoot.getString("key02");
} catch (JSONException e1) {
e1.printStackTrace(); } } |