2009-08-11 12 views
9

¿jQuery tiene incorporado el soporte JSON o debo usar un complemento como jquery.json-1.3.min.js?¿jQuery ha incorporado compatibilidad con JSON?

+2

¿Codificación o decodificación? –

+0

¿No veo cómo esto está relacionado con la programación? – geejay

+9

@geejay ¿no? jquery es javascript, AJAX, json, creo que todos están muy relacionados con la programación. – JasonDavis

Respuesta

9

También puede utilizar $ .ajax y establecer el 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); 
     } 
    } 
); 

Además, $.get y $.post tener un cuarto parámetro opcional que permite a establecer el tipo de datos de la respuesta, por ejemplo:

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

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

esta es la forma en que estoy tratando de hacerlo en realidad, estoy recibiendo una respuesta json de una llamada ajax, ¡así que esto es perfecto para mi situación! – JasonDavis

9

Sí, absolutamente lo hace. Usted puede hacer algo como:

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

gracias, es bueno saberlo, en mi situación la respuesta de karim79 es la forma en que necesito hacerlo. +1 Me pregunto por qué tienen un plugin para json si está integrado? – JasonDavis

1

apoyo JSON jQuery es simplista, tirar una cana al aire. He usado $.ajax y luego analizo el texto de respuesta con el json.org javascript library. Analiza léxicamente para evitar el uso de eval() y posiblemente la ejecución de código arbitrario.

+2

la recomendada json2.js de json.org realmente usa eval. Simplemente tiene un código de sanitización complicado que se ejecuta primero a través de la fuente json. Hay un analizador léxico como alternativa, pero, según todas las versiones, es mucho más lento. – Breton

+0

Gracias por la aclaración. – spoulson

1

jQuery soporta decodificación JSON, pero no admite codificación fuera de la caja. Para la codificación, necesitará un complemento, una biblioteca independiente o un navegador que admita los comandos JSON.stringify y JSON.parse de forma nativa.

Cuestiones relacionadas