2010-03-26 15 views
6

Sto usando la seguente riga di codice JQuery:JSON indefinito in IE7

$.get('/ajax/buy', {'categoryname':chosenSelected}, function(data) { 
    data = JSON.parse(data); 
... 

Tuttavia, quando in esecuzione su IE7 ottengo questo messaggio di errore: JSON undefined:.

Come posso utilizzare il parser compatibile con IE7 (e tutti i principali browser)?

risposta

7

Non è necessario analizzare manualmente JSON. È possibile utilizzare la funzione getJSON:

$.getJSON('/ajax/buy', { 'categoryname' : chosenSelected }, function(data) { 

    // data will be already a parsed JSON object 
}); 

Il metodo parse che si sta tentando di chiamare è disponibile nella libreria json2.

+0

Grazie! Non riesco a trovare una funzione $ .postJSON simile. Qualche motivo speciale per quello? – Joel

+0

E se davvero non esiste alcuna funzione, sembra che l'idea di Luc sia buona: $ .post ('/ ajax/buy', {'categoryname': selectedSelected}, function (data) { data = jQuery.parseJSON (dati); – Joel

+0

No, per favore niente sulla terra mi convincerà che è meglio analizzare manualmente il JSON piuttosto che usare la funzionalità built-in in jQuery, voglio dire che questo ti fa scrivere più codice e più codice hai per ottenere la stessa cosa più possibilità hai di sbagliare. –

11

È possibile utilizzare parseJSON disponibile in jQuery.

+0

Direi che sebbene le altre risposte siano corrette in quanto è possibile ottenere getJSON o le altre funzioni ajax, è occasionalmente utile poter avere un'alternativa IE7-friendly a JSON, quindi grazie per aver segnalato questa funzione. –

+0

Da jQuery source: ** parseJSON: JSON.parse, ** quindi non mi affido a jQuery.parseJSON. – Sam

+1

per il record, sul commento di @ Sam. Questo è vero solo per jQuery 2.0, che ha abbandonato il supporto per i browser più vecchi. In 1.9.x, parseJSON è implementato con un fallback. – gargc

1

È necessario aggiungere un parser JSON. I vecchi browser non lo includono.

1 - Vai alla repository: https://github.com/douglascrockford/JSON-js/

2 - Scaricare e includere json2.js nel vostro sito o applicazione.

Questo è tutto.

+0

Come indicato sopra, ritengo che sia strettamente necessario quando si desidera codificare JavaScript su JSON. – Phluks