Udostępnij za pośrednictwem


JavaScript Object Notation (JSON)

JavaScript Object Notation (JSON) to prosty i lekki format wymiany danych oparty na podzestawie notacji literału obiektu języka JavaScript. Aparat Języka JavaScript w programie Windows Internet Explorer 8 implementuje propozycję ECMAScript 3.1 JSON dla natywnych funkcji obsługi kodu JSON (która używa interfejsu API json2.js Douglas Crockford).

Program Internet Explorer 8 zawiera natywny obiekt JSON, który jest zgodny z obsługą JSON opisaną w ES3.1 Propozycja robocza. Niektóre strony internetowe wykrywają natywny obiekt JSON, a następnie używają go w sposób niestandardowy. To użycie zwykle powoduje błąd skryptu i przerywa obsługę żądań AJAX. Poniższy przykład kodu przedstawia niewłaściwy sposób użycia obiektu JSON.

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

Zamiast tego poniższy przykład kodu pokazuje dobry sposób użycia obiektu JSON.

    JSON = myJSON; 
    JSON.encode(obj);

Program Windows Internet Explorer zawiera natywną obsługę kodu JSON przez wprowadzenie globalnego obiektu JSON, który ma dwie wbudowane metody: stringify i analizowanie. Globalny obiekt JSON jest zdefiniowany w a aparatu JavaScript i jest tworzony podczas fazy inicjowania aparatu. Aby zachować zgodność z poprzednimi wersjami, ta funkcja jest dostępna tylko wtedy, gdy witryna internetowa korzysta z najnowszej wersji funkcji języka JavaScript przy użyciu trybu układu (dokumentów) programu Internet Explorer 8. Ta funkcja może również mieć wpływ na zachowanie stron internetowych, które są zależne od formatu JSON zmiennej globalnej lub używają json2.js.

Można zastąpić globalny obiekt JSON. Jednak gdy strona internetowa używa trybu układu (dokumentu) programu Internet Explorer 8, nie jest już niezdefiniowanym obiektem. Ponieważ kod JSON jest tworzone jako nazwa globalna przez aparat JavaScript, sprawdza, jak "if(!this). Wartość JSON)" daje wartość False i musi zostać zmieniona w kodzie użytkownika.

Prawdopodobnie nie ma to wpływu na strony internetowe korzystające z json2.js. Z kilkoma wyjątkami te strony powinny działać szybciej. Wyjątki są spowodowane różnicami między natywną implementacją JSON programu Internet Explorer a json2.js. Na przykład podczas serializacji natywna implementacja JSON wykrywa cykle i nie przechodzi w nieskończonej rekursji, takiej jak json.js. Aby uzyskać więcej informacji na temat tych wyjątków, zobacz blogi JavaScript.

Aby uzyskać więcej informacji, zobacz dokumentację JSON i przechowywanie wersji oraz obsługę wersji aparatu JavaScript.

rozwiązywanie problemów ze zgodnością w aplikacjach internetowych przy użyciu widoku zgodności