2009-11-24 1 views
20

Domande rapide che probabilmente sono un pezzo di torta per qualcuno che sa come rispondere.Oggetto JSON in IE6 - Come?

Ho un semplice sito web asp.net che usa JSON per un mucchio di roba (e JSON.stringify)

Tutto bene in Firefox, ecc, tuttavia, in IE6 mi imbatto in un errore con JSON essere indefinito.

C'è un modo per includere un'implementazione JSON senza rompere ciò che ho già (utilizzando gli oggetti JSON nativi negli altri browser). Se sì, come?

Grazie!

+0

Che cosa stai usando? http://json.org/json2.js? –

+0

O non stai usando nessuna libreria e mi aspetto che 'JSON.stringify' esista? –

+0

sembra che si possa basare sul supporto JSON nativo nel browser, se funziona in Firefox e non in IE - https://developer.mozilla.org/en/Using_JSON_in_Firefox –

risposta

33

La libreria json2 allo https://github.com/douglascrockford/JSON-js è esattamente quello che stai cercando. Puoi includerlo incondizionatamente e aggiunge JSON.parse e JSON.stringify al tuo spazio dei nomi globale (solo se non ce n'è ancora uno definito). Non funzionerà con nessun JSON integrato. Dalla sua fonte:

if (!this.JSON) { 
    this.JSON = {}; 
} 
... 
if (typeof JSON.stringify !== 'function') { 
... 
if (typeof JSON.parse !== 'function') { 

Questo è completo! Anche se per qualche motivo hai già JSON.stringify ma non JSON.parse (o viceversa) farà comunque la cosa giusta, lasciando quelli originali in posizione.

+6

genera errore atm. Quindi, ecco un backup https://github.com/douglascrockford/JSON-js – Jafin

4

La versione di firefox potrebbe avere il supporto integrato per la libreria JSON. Ma idealmente dovresti includere la libreria JSON js da json.org (fai una copia di esso nel tuo dominio ospitato).

+0

Sì e penso che le versioni recenti della libreria json rilevano se c'è un json nativo da usare. Il collegamento – Nosredna

0

Controllare semplicemente per JSON.stringify e se non esiste, utilizzare un altro metodo per analizzare i dati in una stringa JSON.

2

Ho anche incontrato questo problema, è possibile caricare json2.js prima di utilizzare JSON. fare riferimento a questo link.