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.

57
demandé sur Peter Mortensen 2011-10-22 20:46:53

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);
});

Live demo .

137
répondu Darin Dimitrov 2017-10-21 11:01:48
var obj = $.parseJSON(result);
for (var prop in obj) {
    alert(prop + " is " + obj[prop]);
}
18
répondu xdazz 2015-05-23 07:20:58

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'
6
répondu Oskar 2015-05-23 07:21:12

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]);
5
répondu Smith 2017-10-21 11:03:19

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]);
}
2
répondu mythicalcoder 2015-05-23 06:34:23

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);
0
répondu Peter Mortensen 2017-10-21 11:02:40