共用方式為


JavaScript 物件標記法 (JSON)

JavaScript 物件標記法 (JSON) 是以 JavaScript 語言物件常值標記法子集為基礎的簡單且輕量型資料交換格式。 Windows Internet Explorer 8 中的 JavaScript 引擎會實作原生 JSON 處理函式的 ECMAScript 3.1 JSON 提案 , (會使用 json2.js Api json2.js API) 。

Internet Explorer 8 包含原生 JSON 物件,符合 ES3.1 提案工作草稿中所述的 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 物件: stringifyparse。 全域 JSON 物件是在 JavaScript 引擎中定義,並在引擎初始化階段期間建立。 為了維持回溯相容性,只有在網站使用最新版本的 JavaScript 功能時,才能使用「Internet Explorer 8 標準」版面配置 (檔) 模式。 這項功能也可能會影響相依于全域變數 JSON 的網頁行為,或使用 json2.js

您可以覆寫全域 JSON 物件。 但是,當網頁使用 「Internet Explorer 8 Standard」 版面配置 (檔) 模式時,它不再是未定義的物件。 因為 JSON 是由 JavaScript 引擎具現化為全域名稱,所以會檢查「如果 (!這一點。JSON) 「 評估為 False,而且必須在使用者程式碼中變更。

使用 json2.js 的網頁可能不會受到影響。 在少數例外狀況下,這些頁面應該會更快運作。 例外狀況是因為 Internet Explorer 原生 JSON 實作與json2.js之間的差異。 例如,在序列化期間,原生 JSON 實作會偵測迴圈,而且不會以無限遞迴方式進行,例如json.js。 如需這些例外狀況的詳細資訊,請參閱 JavaScript 部落格

如需詳細資訊,請參閱JSON 檔和版本設定和 JavaScript 引擎的版本支援

使用相容性檢視修正 Web 應用程式中的相容性問題