구조체처럼 변수를 한번에 실어 나르고 싶지만, 그 타입이 불특정할때.. 객체 자체를 전송시키지만, 그값이 데이터 베이스나 그런곳에 들어가기엔 정규화되어 잇지 않을때 사용하기 좋은것이 바로 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(); } } |
'Android_Programma' 카테고리의 다른 글
[ Android , Java ] IOCP client 구현 (0) | 2012.07.26 |
---|---|
[ Android ] Thread 에서 MainActivity UI 쓰레드 참조 시 오류와 해결법 (0) | 2012.07.26 |
[android] 영상처리 NDK 단에서 처리하여 리턴하기 (Image Processing in NDK) (5) | 2012.07.10 |
[android] [펌] SurfaceView 의 이해와 CameraView 띄우기 (0) | 2012.07.09 |
[android] [펌] SurfaceView를 이용한 움직이는 공 만들기 (0) | 2012.07.09 |