본문 바로가기

IT/기타

JSON

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