Boucle et paire clé/valeur pour JSON array en utilisant jQuery
je cherche à boucler un tableau JSON et à afficher la clé et la valeur.
il devrait être une version simplifiée du post suivant, mais je ne semble pas avoir la syntaxe correcte: jQuery' each 'loop with JSON array
j'ai aussi vu le post Obtenir le nom de la clé dans la paire clé/valeur dans JSON à l'aide de jQuery? , mais il semblait aussi que beaucoup de code pour une simple activité.
cela illustre ce que je cherche (mais ça ne marche pas):
var result = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}';
$.each(result, function(k, v) {
//display the key and value pair
alert(k + ' is ' + v);
});
il n'y a pas d'exigence jQuery obligatoire, mais elle est disponible. Je peux aussi restructurer le JSON s'il réduit le code requis.
6 réponses
vous avez une chaîne représentant un objet JavaScript sérialisé JSON. Vous devez le desérialiser de nouveau à un objet JavaScript avant de pouvoir boucler par ses propriétés. Sinon, vous serez en parcourant chaque caractère individuel de cette chaîne.
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
//display the key and value pair
alert(k + ' is ' + v);
});
var obj = $.parseJSON(result);
for (var prop in obj) {
alert(prop + " is " + obj[prop]);
}
vous pouvez obtenir les valeurs directement dans le cas d'un tableau comme ceci:
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}';
var result = $.parseJSON(resultJSON);
result['FirstName']; // return 'John'
result['LastName']; // return ''Doe'
result['Email']; // return 'johndoe@johndoe.com'
result['Phone']; // return '123'
ce qui suit devrait fonctionner pour une chaîne retournée par JSON. Il travaillera également pour un tableau associatif de données.
for (var key in data)
alert(key + ' is ' + data[key]);
analyse la chaîne JSON et vous pouvez boucler à travers les touches.
var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"johndoe@johndoe.com","Phone":"123 dead drive"}';
var data = JSON.parse(resultJSON);
for (var key in data)
{
//console.log(key + ' : ' + data[key]);
alert(key + ' --> ' + data[key]);
}
le meilleur et Le parfait solution pour ce problème:
j'ai essayé le jQuery avec les réponses Ajax succès, mais il ne fonctionne pas donc j'ai inventé mon propre et finalement il fonctionne!
Cliquez ici pour voir la solution complète
var rs = '{"test" : "Got it perfect!","message" : "Got it!"}';
eval("var toObject = "+ rs + ";");
alert(toObject.message);