티스토리 뷰

프로그래밍/java

Java - JSON 사용법

박스여우 2016. 1. 11. 16:44


현재 제가 서버와 클라이언트 간의 통신 규격으로 사용하고 있는 JSON을 Java에서 라이브러리를 통해 사용하는 방법을 알아보겠습니다.


 데이터 교환 형식 - JSON

우선, JSON이란 경량의 데이터 교환 형식으로 사람이 읽고 쓰기도 편하고, 기계역시 마찬가지 입니다.

JSON은 JavaScript에서 객체를 만들 때 사용되는 표현식이지만 완전히 독립적이여서 어떠한 언어에서도 사용이 가능합니다.



 JSON 표기법

JSON을 사용하기 위해 우선적으로 JSON의 표기법을 알아야 합니다. 형식도 모르고 그냥 라이브러리만 이용해서 사용한다면 JSON을 완벽하게 사용하지 못하는 것 과 마찬가지 입니다.


우선, JSON의 가장 큰 단위는 Object입니다. Object는 중괄호로 표기하고, 이 Object 안에 Key값에 대응하는 변수들이 들어가게 됩니다. 변수들에는 문자열, 숫자, Object, 배열등이 있습니다. 이 변수들을 Object에 넣게 될때 대응하는 Key 값이 있는데 변수의 이름과 같다고 보면 됩니다.


두 번째로 배열은 대괄호로 표기하고 따옴표(,)를 통해 변수들을 구별하고 나열합니다. 이 배열을 Object에 넣어서 표기합니다. 배열의 요소들에는 위에서 언급한 변수들의 목록과 같습니다.



 예제

그럼 위의 설명을 통해 JSON 표기법으로 만들어진 Object를 살펴봅시다.

아래의 Object를 보면 Test라는 이름의 "New"라는 문자열 변수가 들어있고("Test": "New"), NumberList라는 이름의 숫자 배열이 담겨있습니다.



 Java에서 JSON 사용법

위의 예제처럼 표기를 하게 된다면 읽기 편하지만, 아무리 보기 좋더라도 쓰기가 꽤 귀찮을 수 있을 것 같습니다. 그래서 Java에서는 라이브러리를 통해 쉽게 Object와 배열을 생성하고, 변수를 넣을 수 있습니다. 또, 넣는 것 뿐만 아니라 Object에선 가져오고자 하는 변수의 이름만 알면 쉽게 데이터를 가져올 수 있습니다.

그래서! Java에서 라이브러리를 통해 JSON을 사용법에 대해 살펴보겠습니다.



이클립스에서 프로젝트를 새로 생성하고 아래 라이브러리를 다운받은뒤 Build Path를 통해 라이브러리를 등록합시다.

java-json.jar


JSONObject 객체를 생성한 뒤에 put와 get을 통해 삽입과 가져오는 것 이 가능합니다. 그리고 JSONArray도 비슷하게 put과 get으로 삽입과 해당 인덱스의 데이터를를 가져올 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
        try {
            JSONObject obj = new JSONObject();
            obj.put("Test""New");
            JSONArray arr = new JSONArray();
            arr.put(12);
            arr.put(122);
            arr.put(453);
            arr.put(123);
            obj.put("NumberList", arr);
            System.out.println(obj.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
cs


위의 코드를 그대로 실행하면 아래와 같이 출력이 됩니다.

{"Test":"New","NumberList":[12,122,453,123]}


Object에 데이터를 삽입하는 방법은 put("이름", 데이터)를 통해 가능하고, 배열은 그냥 put(데이터)를 통해 삽입할 수 있습니다. Object로 부터 데이터를 가져오기 위해선 get타입("이름")을 통해 가져올 수 있고, 배열로 부터 데이터를 가져오기 위해선 get(index)를 통해 가져올 수 있습니다.





이미지 출처:http://www.json.org/json-ko.html







댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함