본문 바로가기

개발 관련 지식/자바(Java)

[자바] JSON 사용 방법

* JSON 사용 방법

 

- 기본적으로 JSON을 사용하기 위해서는 라이브러리(.jar파일) 을 다운로드 해야 한다.

> jar파일명 : JSON.simple (json-simple-1.1.1.jar​)

> 다운로드 : https://code.google.com/p/json-simple/

 

 

- 문법

설정값

내용

구분자

 Object

name / value 쌍들의 비순서화된 SET 

{"name1":"value1", "name2":"value2"}

 Array

 값들의 순서화된 collection

 ["value1", "value2"]

 Value

 Number, String, Boolean, null, Object, Array 사용 가능

 -

 String

 '"'(큰 따옴표) 안에 둘러싸인 0 이상

unicode 문자들의 조합

backslash escape 적용

하나의 문자도 문자열로 표현 가능

 -

 Number

 java Number 과 비슷

 -

 

 

 

- JSON 사용방법

1. JSON 문자열로 변환(전송 패킷)

1) JSON 객체 생성

JSONObject jsObj = new JSONObject();

 

2) JSON 객체에 데이터 저장

jsObj.put("키값1", "데이터 내용1");

jsObj.put("키값2", "데이터 내용2");

...

 

3) JSON 객체를 문자열로 변환(String 형태)

String sendMsg = jsObj.toJSONString();

 

 

2. JSON 문자열 파싱

1) JSON Parser 생성

JSONParser jsPars = new JSONParser();

 

2) 전송 받은 문자열을 JSON 객체로 변환

String receiveMsg = "";

JSONObject jsObj = (JSONObject)jsPars.parse(receiveMsg);

 

3) JSON 객체 내에서 데이터 파싱

String data1 = jsObj.get("키값1").toString();

String data2 = jsObj.get("키값2").toString();

 

 

3. JSON 배열 저장

1) JSON 배열 객체 생성

JSONArray jsArr = new JSONArray();

 

2) n개의 JSON 객체 생성

JSONObject jsObj1 = new JSONObject();

jsObj1.put("name", "호날두");

jsObj1.put("team", "레알");

 

JSONObject jsObj2 = new JSONObject();

jsObj2.put("name", "메시");

jsObj2.put("team", "바셀");

 

3) JSONArray 에 저장

jsArr.add(jsObj1);

jsArr.add(jsObj2);

 

4) JSON 객체 생성

JSONObject jsObj = new JSONObject();

 

5) JSON 객체에 배열 저장

jsObj.put("프리메라", rsArr);

 

6) JSONArray 가져오기

JSONArray outArr = (JSONArray)jsObj.get("프리메라");

 

7) iterator(배열) 를 가져와서 처리

Iterator it = outArr.iterator();

 

8) 존재하는 데이터 수만큼 저장

while(it.hasNext()){

JSONObject o = (JSONObject)it.next();

}

 

 

[참고] 한글 깨짐 현상

JSON 으로 응답을 받을 경우, 한글이 깨지는 경우가 발생한다.

아래와 같이 input Stream 으로 받을 때 char-set 속성값으로 "UTF-8" 을 줄 수 있다.

> BufferedReader input = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));