JSON 문자열을 객체로 안전하게 변환하기
JSON 데이터 문자열이 주어졌을 때, 어떻게 하면 해당 문자열을 JavaScript 객체로 안전하게 변환할 수 있을까요?
물론 다음과 같은 방법으로 안전하지 않게 변환할 수 있습니다.
var obj = eval("(" + json + ')');
...하지만 그렇게 하면 다른 코드가 포함된 json 문자열에 취약해지기 때문에 단순히 평가하는 것은 매우 위험해 보입니다.
1293
20
'제슨스파스 (제슨슬링)' 은 순수 JavaScript 로 상당히 현대 있지만브라우저에 외곽진입 이렇게 오래 보장할 수 있습니다.
지금은 쓰이지 않는 방법을 포함한다. 대신 이 방법을 사용합니다.
39 you& 사용하는 경우, re jQuery 됩니다.
39 의 it& 정확히 어떤 you& # 39 찾고, re (자세한 내용은 jQuery [문서용으로] (http://api.jquery.com/jQuery.parseJSON/)).
**편집: 이 답변은 IE 7에 대한 답변이며, 최신 브라우저는 위의 조나단 답변을 확인하세요.
편집: 이 답변은 구식이며 위의 조나단의 답변 (
JSON.parse(jsonString)
)이 이제 최선의 답변입니다.JSON.org에는 자바스크립트용 4가지 파서를 포함하여 여러 언어에 대한 JSON 파서가 있습니다. 대부분의 사람들이 json2.js를 고토 구현으로 간주할 것이라고 생각합니다.
간단한 코드를 사용하여 표현할 다음 [https://partner. MSDN 에] [1].
및 역동기화를
[1]: 94%29.aspx http://msdn.microsoft.com/en-us/library/ie/cc836466%28v = vs.
다른 방법은 잘 모르겠지만 프로토타입(JSON 튜토리얼)에서 그 방법을 확인할 수 있습니다.
인자로 참을 사용하여 evalJSON()을 호출하면 들어오는 문자열이 살균됩니다.
이 문제가 될 것 같다.
Ajax 웹 소켓 등을 통해 입력 받으면 항상 알아야 할 경우 제슨스파르사블리 확장하지만 끈 형식 - 즉, 이 경우, 해당 프로그램을 통해 항상 토브레 실행하십시오 제슨스파스 & # 39, # 39 successfully& 계속할 수도 있다. 하지만 여전히 you& # 39, ll throw 콘솔에서 오류를 볼 수 있는 " 띄게, 오류: # 39, & # 39, 예상치 못한 토큰인지 x& ".
jQuery]1을 사용하는 경우
$.getJSON(url, function(data) { });
을 수행할 수도 있습니다.그런 다음
데이터.키1.무언가
,데이터.키1.무언가_다른
등과 같은 작업을 수행할 수 있습니다.콜백 전달될 예정인 반환된 데이터를 JSON 사용하여 JavaScript 객체 또는 배열 () '에 정의된 구조와 구문 분석' $ 자파르세이슨 메서드입니다.
그냥 재미로 슬라이드에서는 사용하여 운행에서어떠한 기능:
이 방법을 이용하여 데이터 객체에는 사용해 봅니다. & # 39 ex 데이터 = {} ',' 진정한, & # 39, 카운트입니다 1 결과:.
정말 이 방법을 사용하여 작업할 때 직렬 포트 프로그래밍 노데지스 데 도움이 됩니다
가장 쉬운 방법은 ' ()' 를 사용하여 구문 분석 방법:
json 의 값을 얻을 수 있습니다 '다음' 요소, 예를 들면 다음과 같습니다.
JQuery 을 사용하여 설명된 문서용으로 :
제슨스파스 사용하여 요소라고 할 수 있는 좋은 방법입니다. 예를 들어 here& # 39 의 [라이브 데모를] (http://www.thedevelopertips.com/JavaScript/JS/Convert-JSON-to-JSObject.aspx? id = 7)
I found a " better"; 운행에서어떠한:
커피스크립트 에서:
Javascript:
객체에는 제슨스파스 바뀝니다.
JSON 구문 분석 항상 통증을 엉덩이. 만약 입력이 예상대로 던지는 것은 이 오류가 발생하여 충돌 너희는너희가 거지. 안전하게 구문 분석 기능을 사용할 수 있습니다 다음 작은 너회의 입력입니다. 항상 경우에도 회전 입력 객체에 대한 유효한 객체를 또는 이미 대부분의 경우 어떤 것이 더 아니다.
변환 객체를 JSON 은 다음과 같은 for me, it, 구문 분석 후
만약 우리가 문자열으로 다음과 같습니다. ";;;;;}, {\" status\" 1 \" token\" :\" 65b4352b2dfc4957a09add0ce5714059\" "; 하나님은 이 문자열 객체를 JSON 을 사용하여 두 번 변환하십시오 제슨스파스 쉽게 할 수 있습니다.
단순히 사용하여 객체를 JSON 값을 추출하여 수 있습니다.
그러면 다음과 같이 쓸 수 있다.
Json () 로 전달된 기능, JSON 객체에는 문자열이어야 제슨스파스 변환합니다.
직접 가서 요소에 대한 전반적인 이해가 F12 키를 누릅니다 브라우저의 쓸 콘솔입니다 열려면 다음과 같은 명령: -
이제 명령을 실행합니다.
39, ll get 출력입니다 you& 객체로 {결과:. 참, 수: 1}.
해당 객체를 사용하기 위해, 변수, s # 39 라고 obj - let& 할당하십시오 수 있습니다.
이제 사용하여 목표 및 점 (.) 연산자입니다 객체를 JSON 의 속성을 액세스할 수 있습니다.
명령을 실행할 수 시도하시겠습니까
'방법' 을 분석하고, JavaScript 객체 구조 () 는 JSON 문자열이어야 제슨스파스 값이거나 설명자 문자열. 선택적 '자극성 음료' 기능을 수행할 수 있는 그 전에 객체를 반환됨 변형 제공할 수 있다.
텍스트
Json 문자열을 분석할 수 있다. Json 객체를 JSON 대한 설명을 참조 구문.
자극성 음료 (옵션)
만약 이 값이 변형되는 구문 분석, 각종 기능을 어떻게 처음 제작한 발견되기 전까지 반환되었습니다.
해당 객체를 JSON .해당 사용한다.
던지는 분석할 수 없는 경우 한 SyntaxError idfsysobject. 문자열이어야 유효함 JSON.
그러나 아무도 이 솔루션은 새로운 함수를 사용하여 tfsnap 질문에 그러니까말이야 디이브이 () ',' 익명의 반환하는 함수를 데이터.
그냥 예:
이 때문에 좀 더 안전한 실행하므로 벤자민에 코드에서 컴파일하십시오 함수 내부에서 직접. 그래서 그 안에 있는 경우, 함수 선언 기본 창 객체에는 바인딩되지 않을 것입니다.
39, & # 39 compile& 내가 사용합니다. dom 설정 구성 요소 (예를 들어 데이터 속성) 쉽고 빠르게.