2009-08-11 4 views
9

Est-ce que jQuery a intégré le support JSON ou dois-je utiliser un plugin comme jquery.json-1.3.min.js?Est-ce que jQuery a intégré le support JSON?

+2

Codage ou décodage? –

+0

Je ne vois pas comment cela est lié à la programmation? – geejay

+9

@geejay vous n'avez pas? jquery est javascript, AJAX, json, tous ceux qui sont très liés à la programmation je pense. – JasonDavis

Répondre

9

Vous pouvez également utiliser .ajax $ et réglez le dataType option à « JSON »:

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

En outre, $.get et $.post ont un quatrième paramètre qui vous permet de définir le type de données de la réponse, par exemple:

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

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

c'est la façon dont j'essaye de le faire réellement, je reçois une réponse de JSON d'un appel d'ajax donc c'est parfait pour ma situation! – JasonDavis

9

Oui, c'est absolument le cas. Vous pouvez faire quelque chose comme:

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

merci c'est bon à savoir, dans ma situation, la réponse de karim79 est la façon dont j'ai besoin de le faire cependant. +1 Je me demande pourquoi ils ont un plugin pour json s'il est intégré!? – JasonDavis

1

JSON est simpliste de jQuery, Défiant le vent. J'ai utilisé $.ajax, puis analyser le texte de réponse avec le json.org javascript library. Il analyse lexicalement pour éviter d'utiliser eval() et éventuellement d'exécuter du code arbitraire.

+2

le json2.js reccomended de json.org utilise effectivement eval. Il a juste un code de désinfection compliqué exécuté d'abord par la source json. Il y a un analyseur lexical comme solution de repli, mais il fonctionne beaucoup plus lentement, selon tous les comptes. – Breton

+0

Merci pour la clarification. – spoulson

1

jQuery prend en charge le décodage JSON, mais ne prend pas en charge le codage hors-the-box. Pour l'encodage, vous avez besoin d'un plugin, d'une bibliothèque séparée ou d'un navigateur prenant en charge les commandes JSON.stringify et JSON.parse en mode natif.

Questions connexes