Condividi tramite


JavaScript Object Notation (JSON)

JavaScript Object Notation (JSON) è un formato di interscambio dati semplice e leggero basato su un subset della notazione letterale dell'oggetto del linguaggio JavaScript. Il motore JavaScript in Windows Internet Explorer 8 implementa la proposta JSON ECMAScript 3.1 per le funzioni di gestione JSON native (che usa l'API json2.js di Douglas Crockford).

Internet Explorer 8 include un oggetto JSON nativo conforme al supporto JSON descritto nella bozza di lavoro della proposta ES3.1. Alcune pagine Web rilevano l'oggetto JSON nativo e quindi lo usano in modo non standard. Questo utilizzo causa in genere un errore di script e interrompe la gestione delle richieste AJAX. Nell'esempio di codice seguente viene illustrato il modo errato per usare l'oggetto JSON.

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

L'esempio di codice seguente mostra invece un buon modo per usare l'oggetto JSON.

    JSON = myJSON; 
    JSON.encode(obj);

Windows Internet Explorer include supporto nativo per JSON introducendo un oggetto JSON globale con due metodi predefiniti: stringify e parse. L'oggetto JSON globale viene definito nel motore JavaScript e viene creato durante la fase di inizializzazione del motore. Per mantenere la compatibilità con le versioni precedenti, questa funzionalità è disponibile solo quando un sito Web usa la versione più recente delle funzionalità JavaScript usando il layout "Standard di Internet Explorer 8" (documento). Questa funzionalità potrebbe influire anche sul comportamento delle pagine Web che dipendono da una variabile globale JSON o usare json2.js.

È possibile eseguire l'override dell'oggetto JSON globale. Ma quando una pagina Web usa la modalità "Standard di Internet Explorer 8" (documento), non è più un oggetto non definito. Poiché JSON viene creata un'istanza come nome globale dal motore JavaScript, verifica come "if(!this). JSON)" valuta False e deve essere modificato nel codice utente.

Le pagine Web che usano json2.js sono probabilmente non interessate. Con poche eccezioni, queste pagine devono funzionare più velocemente. Le eccezioni sono a causa delle differenze tra l'implementazione JSON nativa di Internet Explorer e json2.js. Ad esempio, durante la serializzazione, l'implementazione JSON nativa rileva i cicli e non passa in ricorsione infinita come json.js. Per altre informazioni su queste eccezioni, vedere i blog JavaScript.

Per altre informazioni, vedere Documentazione JSON e supporto delle versioni e del motore JavaScript.

Correzione dei problemi di compatibilità nelle applicazioni Web tramite la visualizzazione compatibilità