* 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")); |
'개발 관련 지식 > 자바(Java)' 카테고리의 다른 글
[자바] C언어 getch()함수 대체 방법 (0) | 2015.03.19 |
---|---|
[자바] C언어 getchar, putchar 함수와 동일한 함수 (0) | 2015.03.19 |
[자바] URL 호출 방법 (0) | 2015.01.29 |
[자바] String(문자열) 함수 정리 (0) | 2014.10.22 |
[자바] 예외처리(exception handling) (0) | 2014.07.03 |