>웹 프론트엔드 >JS 튜토리얼 >JSON 문자열과 object_json 간의 변환에 대한 자세한 설명

JSON 문자열과 object_json 간의 변환에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 15:57:551194검색

JSON(JavaScript Object Notation)은 JavaScript 프로그래밍 언어의 하위 집합입니다. JSON은 JavaScript의 하위 집합이므로 이 언어에서 명확하게 사용할 수 있습니다.

평가 함수 JSON 텍스트를 객체로 변환

JSON 텍스트를 객체로 변환하려면 eval 함수를 사용할 수 있습니다. eval 함수는 JavaScript 편집기를 호출합니다. JSON은 JavaScript의 하위 집합이므로 컴파일러는 텍스트를 올바르게 구문 분석하고 개체 구조를 생성합니다. JavaScript 구문 모호성을 방지하려면 텍스트를 괄호로 묶어야 합니다.
var obj = eval('(' JSONTest ')'); eval 함수는 매우 빠릅니다. 모든 JavaScript 프로그램을 컴파일하고 실행할 수 있으므로 보안 문제가 발생합니다. eval 함수는 신뢰할 수 있고 완전한 소스 코드를 사용할 때만 사용해야 합니다. 이를 통해 JSON 텍스트를 보다 안전하게 구문 분석할 수 있습니다. XmlHttp를 사용하는 웹 애플리케이션의 경우 페이지 간 통신은 동일한 출처만 허용하므로 신뢰할 수 있습니다. 그러나 그것은 완벽하지 않습니다. 서버에 엄격한 JSON 인코딩이 없거나 엄격한 입력 유효성 검사가 없는 경우 위험한 스크립트를 포함하여 잘못된 JSON 텍스트를 전송할 수 있습니다. eval 함수는 악성 스크립트를 실행합니다.

JSON 인터프리터 JSON.parse, JSON.stringify

JSON 파서를 사용하면 JSON 텍스트를 객체로 변환하는 평가 기능과 같은 보안 위험을 방지할 수 있습니다. JSON 파서는 JSON 텍스트만 인식하고 모든 스크립트를 거부할 수 있습니다. 기본 JSON 지원을 제공하는 브라우저는 eval 기능보다 훨씬 빠른 JSON 파서를 갖습니다.

현재 Firefox, Opera, IE8 이상에서는 로컬 JSON 지원도 제공합니다. 그 중 JSON 인터프리터가 제공하는 기능은 JSON.parse, JSON.stringify입니다.

기본 JSON 지원을 제공하지 않는 브라우저의 경우 json2.js 스크립트를 도입하여 JSON 변환 기능을 구현할 수 있습니다. json2.js 스크립트는 https://github.com/douglascrockford/JSON-js/blob/master/json2.js 페이지에서 다운로드할 수 있습니다.

JSON.parse 함수

JSON 텍스트를 개체로 변환합니다.
JSON.parse(텍스트[, 부활])
매개변수
텍스트
필수의. 객체로 변환할 JSON 텍스트입니다.
부활
선택 과목. 이 매개변수는 대체 함수입니다. 변환에서는 통과한 각 노드에 대해 이 함수가 실행되고 함수의 반환 값은 변환 결과의 해당 노드 값을 대체합니다.

JSON.stringify 함수

객체를 JSON 텍스트로 변환합니다.
JSON.stringify(값[, 대체[, 공백]])
매개변수
텍스트
필수의. JSON 텍스트로 변환할 개체입니다.
부활
선택 과목. 이 매개변수는 대체 함수입니다. 변환에서는 통과한 각 노드에 대해 이 함수가 실행되고 함수의 반환 값은 변환 결과의 해당 노드 값을 대체합니다.
공간
선택 과목. 서식이 지정된 출력 JSON 텍스트를 들여쓰기할 공백 수입니다. 이 매개변수가 제공되지 않으면 출력 형식이 지정되지 않습니다.
매개변수 부활기의 위임 유형
부활(키, 값)
리바이버 기능에서 이는 현재 순회하는 노드의 상위 노드입니다. 루트 노드를 순회할 때 상위 노드는 객체 객체이고 루트 노드는 객체의 속성이며 속성 이름은 빈 문자열입니다.
매개변수
열쇠
상위 노드가 배열 객체인 경우 키는 배열 인덱스이고, 그렇지 않은 경우 키는 객체 속성 이름입니다.
가치
노드 값.
참고: JSON은 순환 데이터 구조를 지원하지 않습니다.

jQuery.parseJSON( jsonTex )

jQuery에는 문자열을 JSON 형식으로 변환하는 메서드인 jQuery.parseJSON(json)도 있습니다. 이 메서드는 표준 형식 JSON 문자열을 허용하고 구문 분석된 JavaScript(JSON) 개체를 반환합니다. 물론 관심이 있다면 jQuery 확장을 직접 캡슐화할 수 있습니다. jQuery.stringifyJSON(obj)은 JSON을 문자열로 변환합니다.

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.