Freigeben über


JavaScript Object Notation (JSON)

JavaScript Object Notation (JSON) ist ein einfaches und einfaches Datenaustauschformat, das auf einer Teilmenge der Objektliteralnotation der JavaScript-Sprache basiert. Die JavaScript-Engine in Windows Internet Explorer 8 implementiert den ECMAScript 3.1-JSON-Vorschlag für native JSON-Verarbeitungsfunktionen (die douglas Crockfords json2.js-API verwendet).

Internet Explorer 8 enthält ein natives JSON-Objekt, das der JSON-Unterstützung entspricht, die im ES3.1 Proposal Working Draft beschrieben ist. Einige Webseiten erkennen das native JSON-Objekt und verwenden es dann auf nicht standardmäßige Weise. Diese Verwendung verursacht in der Regel einen Skriptfehler und unterbricht die Behandlung von AJAX-Anforderungen. Das folgende Codebeispiel zeigt die falsche Verwendung des JSON-Objekts.

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

Stattdessen zeigt das folgende Codebeispiel eine gute Möglichkeit, das JSON-Objekt zu verwenden.

    JSON = myJSON; 
    JSON.encode(obj);

Windows Internet Explorer bietet native Unterstützung für JSON, indem ein globales JSON-Objekt eingeführt wird, das über zwei integrierte Methoden verfügt: stringify und parse. Das globale JSON-Objekt wird in der JavaScript-Engine definiert und während der Initialisierungsphase des Moduls erstellt. Um die Abwärtskompatibilität zu gewährleisten, ist dieses Feature nur verfügbar, wenn eine Website die neueste Version von JavaScript-Features verwendet, indem sie den Dokumentmodus "Internet Explorer 8 Standards" verwendet. Dieses Feature kann sich auch auf das Verhalten von Webseiten auswirken, die von einer globalen Json-Variable abhängig sind oder json2.jsverwenden.

Sie können das globale JSON-Objekt überschreiben. Wenn eine Webseite jedoch den Layoutmodus "Internet Explorer 8 Standards" (Dokument) verwendet, ist sie kein undefiniertes Objekt mehr. Da JSON von der JavaScript-Engine als globaler Name instanziiert wird, wird "if(!this) überprüft. JSON)" in False auswerten und muss im Benutzercode geändert werden.

Webseiten, die json2.js verwenden, sind wahrscheinlich nicht betroffen. Mit wenigen Ausnahmen sollten diese Seiten schneller funktionieren. Die Ausnahmen sind auf die Unterschiede zwischen der internetbasierten Explorer nativen JSON-Implementierung und json2.js zurückzuführen. Beispielsweise erkennt die native JSON-Implementierung während der Serialisierung Zyklen und geht nicht in unendlicher Rekursion wie json.js. Weitere Informationen zu diesen Ausnahmen finden Sie in den JavaScript-Blogs.

Weitere Informationen finden Sie unter JSON-Dokumentation und Versionsverwaltung und Versionsunterstützung der JavaScript-Engine.

Beheben von Kompatibilitätsproblemen in Webanwendungen mithilfe der Kompatibilitätsansicht