2009-08-11 15 views
9

jQuery ha integrato il supporto JSON o devo usare un plugin come jquery.json-1.3.min.js?jQuery ha integrato il supporto JSON?

+2

Codifica o decodifica? –

+0

Non vedo come questo sia collegato alla programmazione? – geejay

+9

@geejay non lo fai? jquery è javascript, AJAX, json, tutti quelli sono molto legati alla programmazione, penso. – JasonDavis

risposta

9

È inoltre possibile utilizzare $ .ajax e impostare il dataType option a "json":

$.ajax({ 
     url: "script.php", 
     global: false, 
     type: "POST", 
     data: ({id : this.getAttribute('id')}), 
     dataType: "json", 
     success: function(json){ 
     alert(json.foo); 
     } 
    } 
); 

Inoltre, $.get e $.post avere un quarto parametro opzionale che consente di impostare il tipo di dati di risposta, ad esempio:

$.postJSON = function(url, data, callback) { 
    $.post(url, data, callback, "json"); 
}; 

$.getJSON = function(url, data, callback) { 
    $.get(url, data, callback, "json"); 
}; 
+1

questo è il modo in cui sto provando a farlo in realtà, sto ricevendo una risposta JSON da una chiamata AJAX quindi questo è perfetto per la mia situazione! – JasonDavis

9

Sì, assolutamente. Si può fare qualcosa di simile:

$.getJSON('/foo/bar/json-returning-script.php', function(data) { 
    // data is the JSON object returned from the script. 
}); 
+1

grazie è bello sapere, nella mia situazione la risposta di karim79 è il modo in cui ho bisogno di farlo comunque. +1 Mi chiedo perché hanno un plugin per JSON se è integrato !? – JasonDavis

1

supporto JSON jQuery è semplicistico, gettando cautela al vento. Ho usato $.ajax e quindi analizzo il testo di risposta con lo json.org javascript library. Analizza lessicamente per evitare l'uso di eval() ed eventualmente l'esecuzione di codice arbitrario.

+2

il json2.js consigliato da json.org utilizza effettivamente eval. Ha solo qualche complicato codice di disinfezione che viene eseguito prima attraverso la sorgente JSON. C'è un parser lessicale come fallback, ma viene eseguito molto più lentamente, da tutti gli account. – Breton

+0

Grazie per il chiarimento. – spoulson

1

jQuery supporta decodifica JSON, ma non supporta codifica out-of-the-box. Per la codifica, è necessario un plug-in, una libreria separata o un browser che supporti i comandi JSON.stringify e JSON.parse in modo nativo.

Problemi correlati