링크 : https://github.com/douglascrockford/JSON-js

저작자 표시 비영리 변경 금지
신고
posted by 뚱2

[JSON] JSON

JavaScript/Json 2012.10.30 11:11

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


JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.JavaScript Programming LanguageStandard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다. JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이러한 속성들이 JSON을 이상적인 DATA-교환 언어로 만들고 있다.

JSON은 두개의 구조를 기본으로 두고 있다:

  • name/value 형태의 쌍으로 collection 타입. 다양한 언어들에서, 이는 object, record, struct(구조체), dictionary, hash table, 키가 있는 list, 또는 연상배열로서 실현 되었다.
  • 값들의 순서화된 리스트. 대부분의 언어들에서, 이는 array, vector, list, 또는 sequence로서 실현 되었다.

이러한 것들은 보편적인 DATA 구조이다. 사실상 모든 현대의 프로그래밍 언어들은 어떠한 형태로든 이것들을 지원한다. 프로그래밍 언어들을 이용하여 호환성 있는 DATA 형식이 이러한 구조들을 근간에 두고 있는 것은 당연하다.

JSON 에서, 이러한 형식들을 가져간다:

object는 name/value 쌍들의 비순서화된 SET이다. object는 { (좌 중괄호)로 시작하고 } (우 중괄호)로 끝내어 표현한다. 각 name 뒤에 : (colon)을 붙이고, (comma)로 name/value 쌍들 간을 구분한다.

array은 값들의 순서화된 collection 이다. array는 [ (left bracket)로 시작해서 ] (right bracket)로 끝내어 표현한다. , (comma)로 array의 값들을 구분한다.

value는 큰따옴표안에 stringnumber ,true ,false , nullobject ,array이 올수 있다. 이러한 구조들을 포함한다.

string은 큰따옴표안에 둘러 싸인 zero 이상 Unicode 문자들의 조합이며, 쌍다옴표안에 감싸지며,backslash escape가 적용된다. 하나의 문자(character)도 하나의 문자열(character string)로서 표현된다. string은 C 또는 Java 문자열 처럼 매우 많이 비슷하다.

number는 8진수와 16진수 형식을 사용하지 않는것을 제외하면 C와 Java number 처럼 매우 많이 비슷하다.

토근들의 어떤 쌍 사이에 공백을 삽입할수 있다. 드물게 encode된 세부 항목을 제외하면, 이렇게 설명된 JSON의 형식은 완벽하게 그 언어를 설명한다.


저작자 표시 비영리 변경 금지
신고
posted by 뚱2
참고 : http://www.json.org/js.html
Json Parser 다운 : https://github.com/douglascrockford/JSON-js

// json text -> object
var objText = '{"name":"뚱2"}';
var obj = JSON.parse(objText);

// json Object -> text
var newText = JSON.stringify(obj);

2012-02-06 추가
json text 는 꼭 key와 value를 쌍따옴표로 감싸야 한다.
그렇지 않는다면 JSON.parse를 사용했을때 정상적으로 파싱되지 않는다.
예)
// Object
JSON.parse('{"name":"뚱2"}');
// Not Object
JSON.parse("{'name':'뚱2'}");


참고 : http://itzone.tistory.com/169
저작자 표시
신고
posted by 뚱2
거창한건 아닙니다. 그냥 간단한 Tip입니다.
json으로 비동기 통신을 하다보면은 결과 값을 json Text로 받는 경우가 있습니다.


이걸 Javascript Object 로 변경주어야 스크립트 단에서 사용 할 수 있습니다.

    // 승인
	$("#btn_approval").click(function() {
		var selRows = $(DF.ID.GRID_MAIN).getGridParam("selarrrow");
		if ( selRows.length == 0) {
			alert("항목을 선택해 주세요.");
			return;
		}
			
		$.ajax({
		     type: 'POST'
		    ,url : DF.URL.APPROVAL
		    ,data: {id : selRows}
			,success: function(data) {
				var ret = eval("(" + data + ")");
				if (ret.success == "true") {
					alert(ret.message);
					$(DF.ID.GRID_MAIN).trigger("reloadGrid");
				}

		    }
			,error: function(result) {
		    }
		});		
	});

14번째의 줄 같이 넘어온 값을 "()"로 묶어서 eval함수를 실행해 주시면 됩니다.

* 추가 2012-02-07
eval을 사용하는건 보안상 위험이 있습니다. JSON.parse ( http://www.json.org/ ) 사용하는걸 권장합니다.




저작자 표시
신고
posted by 뚱2