글
1. JSON 이란?
JSON 에 대한 설명은 공식 홈페이지나 위키에 가서 확인하는게 빠를거 같습니다.
JSON 공식 홈페이지 : http://www.json.org
아래 개요 사이트에 가면 친절하게 한국어로 적혀있습니다.
JSON 개요 : http://www.json.org/json-ko.html
JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고
쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다. JavaScript Programming
Language, Standard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다.
JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript,
Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이
러한 속성들이 JSON을 이상적인 DATA-교환 언어로 만들고 있다.
간추려서 말하면, JSON을 지원하는 여러 다양한 언어(C, C++, C#, Java, PHP, Javascript 등...)에서 자료를 쉽게 주고 받을 수 있다고 볼 수 있습니다.
2. Java - JSON
JSON 은 바로 사용하지 못하고 언어에 맞게 별도의 컴파일 과정을 거친 후, 사용할 수 있습니다.
C 의 경우 컴파일 후에 필요한 파일들 복사하고 헤더 파일을 등록 후에 사용하는 것 처럼, Java 에서도 제공된 라이브러리를 통해서 간단하게 사용할 수 있습니다.
3. json-simple 로 json 사용하기
사전에 TCP, UDP 통신등으로 데이터를 주고 받을 수 있도록 구현이 된 상태에서 진행하도록 합니다.
먼저 데이터를 넣는 방법입니다.
아래와 같이 JSONObject를 선언한 다음에 put을 통해서 데이터를 집어 넣어 줍니다.
JSONObject obj;
obj = new JSONObject();
obj.put("key1", "value1");
obj.put("key2", "value2");
위와 같이 만들어진 obj를 통신을 사용해서 보내고자 하는 곳으로 넘겨주면 됩니다.
받게 되는 곳에서는 위의 obj를 받게 됩니다.
이 때, 받은 자료를 value 라는 String 에 저장을 했습니다.
받은 데이터를 JSON 문법으로 해석합니다.
그 다음 get을 통해서 키를 입력하면 값을 받을 수 있습니다.
JSONObject jsonObj;
jsonObj = (JSONObject) JSONValue.parse(value);
String tmp;
tmp = (String) jsonObj.get("key2");
system.out.println(tmp);
위와 같이 했을 때, tmp 는 value2 라는 값을 가지게 됩니다.
JSON.parse 함수(JavaScript)
JSON(JavaScript Object Notation) 문자열을 개체로 변환합니다.
JSON.parse(text [, reviver])
이 함수로 JavaScript 구문 분석 오류("SCRIPT1014: 잘못된 문자입니다.")가 발생되면 입력 테스트는 JSON 구문을 따르지 않습니다. 오류를 수정하려면 다음 중 하나를 수행합니다.
text 인수를 수정하여 JSON 구문을 따르도록 합니다. 자세한 내용은 JSON 개체의 BNF 구문 주석을 참조하세요.
텍스트 인수가 JSON.stringify와 같은 JSON 준수 구현으로 serialize되는지 확인합니다.
다음 예제에서는 JSON.parse를 사용하여 JSON 문자열을 개체로 변환합니다.
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}'; var contact = JSON.parse(jsontext); document.write(contact.surname + ", " + contact.firstname); // Output: Aaberg, Jesper
다음 예제에서는 JSON.stringify를 사용하여 배열을 JSON 문자열로 변환한 다음 JSON.parse를 사용하여 문자열을 배열로 변환하는 방법을 보여 줍니다.
var arr = ["a", "b", "c"]; var str = JSON.stringify(arr); document.write(str); document.write ("<br/>"); var newArr = JSON.parse(str); while (newArr.length > 0) { document.write(newArr.pop() + "<br/>"); } // Output: var arr = ["a", "b", "c"]; var str = JSON.stringify(arr); document.write(str); document.write ("<br/>"); var newArr = JSON.parse(str); while (newArr.length > 0) { document.write(newArr.pop + "<br/>"); } // Output: ["a","b","c"] c b a
reviver 함수는 ISO(International Organization for Standardization) 날짜 문자열의 JSON 표현을 UTC(협정 세계 표준시) 형식 Date 개체로 변환하는데 흔히 사용됩니다.
이 예제에서는 JSON.parse를 사용하여 ISO 형식 날짜 문자열을 deserialize합니다. dateReviver 함수는 ISO 날짜 문자열처럼 형식이 지정된 멤버의 Date 개체를 반환합니다.
var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }'; var dates = JSON.parse(jsontext, dateReviver); document.write(dates.birthdate.toUTCString()); function dateReviver(key, value) { var a; if (typeof value === 'string') { a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); if (a) { return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])); } } return value; }; // Output: // Thu, 25 Dec 2008 12:00:00 UTC
요구 사항
지원되는 문서 모드: Internet Explorer 8 표준, Internet Explorer 9 표준, Internet Explorer 10 표준. Windows 스토어 응용 프로그램에서도 지원됩니다. 버전 정보를 참조하십시오.
지원되지 않는 문서 모드: Quirks, Internet Explorer 6 표준, Internet Explorer 7 표준
min
'학습 > 용어정리' 카테고리의 다른 글
안드로이드 NFC 기본 기능 (NFC Basic) (0) | 2013.07.18 |
---|---|
MVC (0) | 2013.07.04 |
RequestJS (0) | 2013.07.04 |
RECENT COMMENT