2011-10-22 12 views
56

Sto cercando di scorrere un array JSON e visualizzare la chiave e il valore.Loop and get coppia chiave/valore per array JSON utilizzando jQuery

dovrebbe essere una versione semplificata del seguente post, ma io non sembrano avere la sintassi corretta: jQuery 'each' loop with JSON array

Ho visto anche il palo Get name of key in key/value pair in JSON using jQuery?, ma sembrava anche come un sacco di codice per un'attività semplice.

Questo illustra quello che sto cercando (ma non funziona):

var result = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
$.each(result, function(k, v) { 
      //display the key and value pair 
      alert(k + ' is ' + v); 
     }); 

Non v'è alcun requisito obbligatorio jQuery, ma è disponibile. Posso anche ristrutturare il JSON se taglia il codice richiesto.

+2

si deve analizzare JSON in un oggetto JavaScript prima. –

risposta

133

Si dispone di una stringa che rappresenta un oggetto JavaScript serializzato JSON. È necessario deserializzare di nuovo su un oggetto JavaScript prima di essere in grado di scorrere le sue proprietà. Altrimenti passerai attraverso ogni singolo carattere di questa stringa.

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","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.

+0

Eccellente. Ho aggiunto var result = $ .parseJSON (resultJSON); e ora funziona. – JStark

+2

Ben scritta spiegazione. –

+0

@Darin come ottenere il valore "indice"? –

17
var obj = $.parseJSON(result); 
for (var prop in obj) { 
    alert(prop + " is " + obj[prop]); 
} 
0

La soluzione migliore e perfetto per questo problema:

Ho provato il jQuery con le risposte di successo Ajax, ma non funziona così ho inventato il mio e, infine, funziona!

Click here to see the full solution

var rs = '{"test" : "Got it perfect!","message" : "Got it!"}'; 
eval("var toObject = "+ rs + ";"); 
alert(toObject.message); 
6

È possibile ottenere i valori direttamente in caso di un array come questo:

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
var result = $.parseJSON(resultJSON); 
result['FirstName']; // return 'John' 
result['LastName']; // return ''Doe' 
result['Email']; // return '[email protected]' 
result['Phone']; // return '123' 
5

Il seguente dovrebbe funzionare per un JSON restituito stringa. Funzionerà anche per un array associativo di dati.

for (var key in data) 
    alert(key + ' is ' + data[key]); 
+0

La stringa 'JSON' deve essere analizzata nell'oggetto' JSON'. – mythicalcoder

2

Analizzare la stringa JSON ed è possibile scorrere i tasti.

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
 
var data = JSON.parse(resultJSON); 
 

 
for (var key in data) 
 
{ 
 
    //console.log(key + ' : ' + data[key]); 
 
    alert(key + ' --> ' + data[key]); 
 
}