JSON(JavaScript Object Notation)
XML은 JSON보다 무겁고 JSON은 경량화 되어 있다.
JSON은 XML보다 적은 용량으로 데이터를 교환할 수 있다.
JSON은 데이터 타입을 갖고 XML은 모두 String형 이다.
JSON에서 가장 많이 쓰는 json-simple library를 다운받아야 사용이 가능하다.
https://code.google.com/p/json-simple/
다운로드후 해당 프로젝트에 복사를 해주고 add to build path해준다.
JSON은 순서없이 관리를 하는 set구조를 가지고 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import org.json.simple.JSONObject; public class Ex1 { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name", "foo"); obj.put("num", new Integer(100)); obj.put("balance", new Double(1000.21)); obj.put("is_vip", new Boolean(true)); obj.put("nickname",null); System.out.println(obj); } } |
결과값 :
{"balance":1000.21,"is_vip":true,"num":100,"name":"foo","nickname":null}
LinkedHashMap을 이용한 출력
JSONObject를 쓴것과 다르게 값을 넣은 순서대로 출력이 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import java.util.LinkedHashMap; import java.util.Map; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class Ex1 { public static void main(String[] args) { Map obj = new LinkedHashMap(); obj.put("name", "foo"); obj.put("num", new Integer(100)); obj.put("balance", new Double(1000.21)); obj.put("is_vip", new Boolean(true)); obj.put("nickname",null); String jsonText = JSONValue.toJSONString(obj); System.out.println(jsonText); } } |
결과값:
{"name":"foo","num":100,"balance":1000.21,"is_vip":true,"nickname":null}
JSONArray()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.util.LinkedHashMap; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class Ex1 { public static void main(String[] args) { JSONArray list = new JSONArray(); list.add("foo"); list.add(new Integer(100)); list.add(new Double(1000.21)); list.add(new Boolean(true)); list.add(null); System.out.println(list); } } |
결과값:
["foo",100,1000.21,true,null]
LinkedList사용 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class Ex1 { public static void main(String[] args) { LinkedList list = new LinkedList(); list.add("foo"); list.add(new Integer(100)); list.add(new Double(1000.21)); list.add(new Boolean(true)); list.add(null); String jsonText = JSONValue.toJSONString(list); System.out.println(jsonText); } } |
결과값 :
["foo",100,1000.21,true,null]
addAll()로 두 JSON합치기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class Ex1 { public static void main(String[] args) { JSONArray list1 = new JSONArray(); list1.add("foo"); list1.add(new Integer(100)); list1.add(new Double(1000.21)); JSONArray list2 = new JSONArray(); list2.add(new Boolean(true)); list2.add(null); list2.addAll(list1); System.out.println(list2); } } |
결과값 :
[true,null,"foo",100,1000.21]
JSONObject와 JSONArray
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class Ex1 { public static void main(String[] args) { JSONArray list1 = new JSONArray(); list1.add("foo"); list1.add(new Integer(100)); list1.add(new Double(1000.21)); JSONArray list2 = new JSONArray(); list2.add(new Boolean(true)); list2.add(null); JSONObject obj = new JSONObject(); obj.put("name", "foo"); obj.put("num", new Integer(100)); obj.put("balance", new Double(1000.21)); obj.put("is_vip", new Boolean(true)); obj.put("nickname", null); obj.put("list1", list1); obj.put("list2", list2); System.out.println(obj); } } |
결과값 :
{"list1":["foo",100,1000.21],"balance":1000.21,"is_vip":true,"num":100,
"list2":[true,null],"name":"foo","nickname":null}
출처 : http://milkismania.tistory.com/?page=12
'IT > 기타' 카테고리의 다른 글
Tomcat 오류. May be locked by another process (0) | 2015.11.17 |
---|---|
한글깨짐 tomcat 설정 (0) | 2015.11.11 |
XML 특수문자 파싱 (0) | 2015.09.24 |
tomcat timeout 에러 (0) | 2015.08.19 |
Spring Form Tag (0) | 2015.02.27 |