Netty를 이용해서 웹 소켓 서버를 만들고 클라이언트에서 웹 소켓을 열고 통신을 하다보니
웹 소켓에서는 아직 텍스트 통신만 지원한다.
따라서 양쪽에서 서로 쓰기 좋은 Json 포맷으로 통신하다보니 서버쪽은 자바로 구성되어 Gson 라이브러리를 쓰고,
클라이언트에서 자바스크립트로 Json <-> Object 가 필요해서 찾아보니 내장 객체로 JSON이 있다는 것을 알게 되었다.
JSON Parsing 내장 객체를 지원하는 브라우저는 다음과 같다
(http://caniuse.com/json)
JSON 객체의 함수로는 Object를 Json 문자열로 변환하는 stringify 와 반대로 Json 문자열을 객체로 변환하는 parse 함수가 있다.
JSON에 관한 설명은 MSDN에 잘 나와있어 사용방법에 관한 내용은 생략하고 매개변수에 대한 내용만 스크랩했다.
http://msdn.microsoft.com/ko-kr/library/ie/cc836466(v=vs.94).aspx
1. JSON.stringify(value [, replacer] [,space])
필수 요소. JavaScript 값은 일반적으로 변환할 개체 또는 배열입니다.
선택 사항입니다. 결과를 변환하는 함수 또는 배열입니다.
replacer가 함수이면 JSON.stringify는 키와 각 멤버의 값을 전달하여 함수를 호출합니다. 반환 값은 원본 값 대신 사용됩니다. 함수가 undefined를 반환하면 멤버가 제외됩니다. 루트 개체의 키는 빈 문자열인 ""입니다.
replacer가 배열이면 배열에 키 값이 있는 멤버만 변환됩니다. 멤버가 변환되는 순서는 배열의 키 순서와 같습니다. replacer 배열은 value 인수도 배열인 경우 무시됩니다.
선택 사항입니다. 읽기 쉽도록 들여쓰기, 공백, 줄 바꿈 문자를 반환 값 JSON 텍스트에 추가합니다.
space가 생략되면 반환 값 텍스트가 추가 공백 없이 생성됩니다.
space가 숫자이면 반환 값 텍스트가 각 수준의 지정된 공백 수로 들여쓰기됩니다. space가 10보다 크면 텍스트가 10칸 들여쓰기됩니다.
space가 '\t'와 같이 빈 문자열이 아니면 반환 값 텍스트가 각 수준의 문자열의 문자로 들여쓰기됩니다.
space가 10자보다 긴 문자열이면 처음 10자가 사용됩니다.
변환할 객체에 toJSON(key) 함수가 있는 경우 해당 키를 가진 값을 변환하여 반환한다.
2. JSON.parse(value [,reviver])
필수 요소. JavaScript 값은 일반적으로 변환할 개체 또는 배열입니다.
선택 사항입니다. 결과를 변환하는 함수 또는 배열입니다.
replacer가 함수이면 JSON.stringify는 키와 각 멤버의 값을 전달하여 함수를 호출합니다. 반환 값은 원본 값 대신 사용됩니다. 함수가 undefined를 반환하면 멤버가 제외됩니다. 루트 개체의 키는 빈 문자열인 ""입니다.
replacer가 배열이면 배열에 키 값이 있는 멤버만 변환됩니다. 멤버가 변환되는 순서는 배열의 키 순서와 같습니다. replacer 배열은 value 인수도 배열인 경우 무시됩니다.
선택 사항입니다. 읽기 쉽도록 들여쓰기, 공백, 줄 바꿈 문자를 반환 값 JSON 텍스트에 추가합니다.
space가 생략되면 반환 값 텍스트가 추가 공백 없이 생성됩니다.
space가 숫자이면 반환 값 텍스트가 각 수준의 지정된 공백 수로 들여쓰기됩니다. space가 10보다 크면 텍스트가 10칸 들여쓰기됩니다.
space가 '\t'와 같이 빈 문자열이 아니면 반환 값 텍스트가 각 수준의 문자열의 문자로 들여쓰기됩니다.
space가 10자보다 긴 문자열이면 처음 10자가 사용됩니다.
'밤을 지새다 > Web' 카테고리의 다른 글
[Apache Tomcat] POST 폼 전송 시 Parameter Collection의 크기, 갯수 제한 (3) | 2014.04.26 |
---|---|
서버 시간대(Time Zone) 설정 (0) | 2014.03.13 |
[Apache Tomcat 7] 서브 도메인에 대한 호스트 설정 (1) | 2014.03.12 |
파일을 다운로드 하도록 하는 Response Header (0) | 2013.10.17 |