2012-03-17 2 views
0

$ .toJSON() 함수의 사용법은 무엇입니까? 그것은 json 형식으로 데이터를 변환하는 것으로 보인다. 여기 코드는 우리가 또한 내가 생각 작동

data: { name: $("input[type=text]").val() } 

처럼 josn 형식으로 수동으로 데이터를 제공 할 수 있습니다 $ .toJSON() 함수를 사용하지 않고

data: $.toJSON({ name: $("input[type=text]").val() }) 

스 니펫입니다. 토론하십시오. 감사합니다

+0

참고로 jquery-json 플러그인의 문서는 다음과 같습니다. http://code.google.com/p/jquery-json/ –

답변

2

, toJSONis not a native jQuery method.

JSON.stringify로이 같은 일 가정하면, 그것은 data 옵션에 객체를 할당하는 등의 하지 동일합니다. documentation (강조 광산) :

데이터가 서버로 전송됩니다. 문자열이 아닌 경우 쿼리 문자열로 변환됩니다. GET 요청에 대한 URL에 추가됩니다. 당신이 문자열 (즉, 객체)를 통과하지 않는 경우

그래서, 데이터는 쿼리 문자열하지 JSON으로 변환됩니다.

은 (( %22"입니다) GET 가정)

data: $.toJSON({ name: $("input[type=text]").val() }) 

이 URL 초래 더 정확하게하려면

http://some_server.com/?{%22name%22:%22somevalue%22} 

이것은 내가 가정 액세스 값을 어렵게 만들 것입니다. 이 POST 요청을 사용하여 더 의미가 있습니다.에서 한편

,

data: { name: $("input[type=text]").val() } 

결과는

http://some_server.com/?name=somevalue 

지적 어쩌면 중요한 귀하의 예제에서

{ name: $("input[type=text]").val() } 

는 "JSON 형식되지 않는 것입니다 ". JavaScript 객체 리터럴입니다. JSON은 데이터 교환 형식이며 JSON은 구문이 JavaScript의 개체 리터럴과 비슷하지만 완전히 다른 것입니다.

2

JSON-formatJSON-object은 서로 다른 두 가지입니다!

toJSON :

toJSON (플러그인 법) 다음에 수행 JSON 자바 스크립트 객체, 숫자, 문자열, 또는 어레이를 직렬화.


  1. data: $.toJSON({ name: $("input[type=text]").val() })

  • data: { name: $("input[type=text]").val() } 당신에게 을 줄 것이다 당신에게 JSON 문자열을 줄 것이다 자바 스크립트 객체 먼저

  • +0

    이는'$ .getJSON' 함수를위한 것이지'$. toJSON' 기능을 제공합니다. –

    +1

    @EvanMulawski. 편집, 죄송합니다. – gdoron

    +1

    아직 유효한 답변이 아닙니다. –