2012. 7. 18. 21:08

구조체처럼 변수를 한번에 실어 나르고 싶지만, 그 타입이 불특정할때.. 객체 자체를 전송시키지만, 그값이 데이터 베이스나 그런곳에 들어가기엔 정규화되어 잇지 않을때 사용하기 좋은것이 바로 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();

}

}

 


Posted by k1rha