다음을 통해 공유


JSON(JavaScript Object Notation)

JSON(JavaScript Object Notation) 은 JavaScript 언어의 개체 리터럴 표기법 하위 집합을 기반으로 하는 간단하고 간단한 데이터 교환 형식입니다. Windows Internet Explorer 8의 JavaScript 엔진은 네이티브 JSON 처리 함수(Douglas Crockford의 json2.js API 사용)에 대한 ECMAScript 3.1 JSON 제안을 구현합니다.

Internet Explorer 8에는 ES3.1 제안 작업 초안에 설명된 JSON 지원을 준수하는 네이티브 JSON 개체가 포함되어 있습니다. 일부 웹 페이지에서는 네이티브 JSON 개체를 검색한 다음 비표준 방식으로 사용합니다. 이 사용은 일반적으로 스크립트 오류를 발생시키고 AJAX 요청의 처리를 중단합니다. 다음 코드 예제에서는 JSON 개체를 사용하는 잘못된 방법을 보여줍니다.

    if(!window.JSON) JSON = myJSON; 
    JSON.encode(obj); // Not part of the standard

대신 다음 코드 예제에서는 JSON 개체를 사용하는 좋은 방법을 보여줍니다.

    JSON = myJSON; 
    JSON.encode(obj);

Windows Internet Explorer 문자열화구문 분석이라는 두 가지 기본 제공 메서드가 있는 전역 JSON 개체를 도입하여 JSON에 대한 네이티브 지원을 포함합니다. 전역 JSON 개체는 JavaScript 엔진에 정의되며 엔진 초기화 단계에서 만들어집니다. 이전 버전과의 호환성을 유지하기 위해 이 기능은 웹 사이트에서 "인터넷 Explorer 8 표준" 레이아웃(문서) 모드를 사용하여 최신 버전의 JavaScript 기능을 사용하는 경우에만 사용할 수 있습니다. 이 기능은 전역 변수 JSON에 의존하거나json2.js사용하는 웹 페이지의 동작에도 영향을 수 있습니다.

전역 JSON 개체를 재정의할 수 있습니다. 그러나 웹 페이지에서 "인터넷 Explorer 8 표준" 레이아웃(문서) 모드를 사용하는 경우 더 이상 정의되지 않은 개체가 아닙니다. JSON은 JavaScript 엔진에 의해 전역 이름으로 인스턴스화되므로 "if(!this)와 같이 확인합니다. JSON)"은 False로 평가되며 사용자 코드에서 변경해야 합니다.

json2.js 사용하는 웹 페이지는 영향을 받지 않을 수 있습니다. 몇 가지 예외를 제외하고 이러한 페이지는 더 빠르게 작동해야 합니다. 예외는 인터넷 Explorer 네이티브 JSON 구현과 json2.js 간의 차이 때문입니다. 예를 들어 serialization 중에 네이티브 JSON 구현은 주기를 검색하고 json.js 같은 무한 재귀로 이동하지 않습니다. 이러한 예외에 대한 자세한 내용은 JavaScript 블로그를 참조하세요.

자세한 내용은 JSON 설명서버전 관리 및 JavaScript 엔진의 버전 지원을 참조하세요.

호환성 보기를 사용하여 웹 애플리케이션의 호환성 문제 해결