객체를 JSON 문자열로 변환


답변:


188

jQuery는 네이티브 브라우저 메서드를 호출하기 전에 일부 정규 표현식 만 확인합니다 window.JSON.parse(). 사용할 수없는 경우 eval()또는 더 정확하게 new Function()사용하여 Javascript 개체를 만듭니다.

의 반대 JSON.parse()IS JSON.stringify()문자열로 자바 스크립트 객체를 직렬화한다. jQuery를 그에 대한 자신의 기능을 가지고 있지 않습니다, 당신은 버전 내장하거나 브라우저를 사용해야 json2.js에서 http://www.json.org을

JSON.stringify() 모든 주요 브라우저에서 사용할 수 있지만 이전 브라우저와 호환 되려면 여전히 대체가 필요합니다.


4
이 도움이 될 수 있습니다var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger

2
@tekretic : 나는 당신이 트롤링하고 있기를 바랍니다. Chrome은 JSON1
일차

5
@jAndy : 오 와우, 죄송합니다. 트롤링은 아니지만 OH 너무 잘못되었습니다. 2009 년 중반에 기본 JSON 지원이 WebKit에 추가되어 Chrome 3.0부터 지원됩니다. 내 이전의 완전히 부정확 한 의견은 실제로 window.JSON을 자체 라이브러리로 대체하는 현재 작업중인 CMS와 결합 된 이 오래된 질문 의 절반을 기반으로합니다 JSON.stringify(). 의미 가 정의되지 않았습니다. 모든면에서 상당히 실패했습니다.
Molomby


1
@jAndy : 혼동하지 마십시오. : JSON.stringify 'serialises'객체, 그저 실수라고 말 해주세요
halfbit

12

디버깅 목적으로 Object.toSource ()도 유용합니다. 여기서 디버깅 목적으로 개체와 해당 속성을 표시하려는 경우. 이것은 일반적인 자바 스크립트 (jQuery가 아님) 함수이지만 "최신"브라우저에서만 작동합니다.


4

JavaScript 객체를 json 데이터로 변환

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

http://jsonlint.com을 사용하여 json 데이터의 유효성을 검사 할 수 있습니다.


2

우수한 jquery-Json 플러그인을 사용할 수 있습니다.

http://code.google.com/p/jquery-json/

Json 객체와 쉽게 변환 할 수 있습니다.


2
추가 로직 라이브러리보다 SPL 방법을 권장하십시오.
David J Eddy

2
SPL = 표준 PHP 라이브러리. 이 경우 SJL (표준 자바 스크립트 라이브러리)이 될 것이라고 추측하십시오.
David J Eddy

3
질문은 jQuery 및 Javascript에 관한 것입니다. PHP, PHP 라이브러리 또는 SPL과는 관련이 없습니다.
George Filippakos

3
표준 라이브러리는 표준 라이브러리입니다. 언어는 중요하지 않습니다. 내 요점은 '이 플러그인 사용'증후군보다 언어를 가르치는 솔루션을 추천하는 것이 좋습니다.
David J Eddy

1
정확히, 바퀴를 재발 명하는 이유는 ... '플러그인'보다 언어의 표준 기능을 사용하지만 나는 우회합니다.
David J Eddy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.