2011-10-05 15 views
36

il mio script sta ricevendo un array dallo script lato server php.foreach per array JSON, sintassi

result = jQuery.parseJSON(result); 

ora voglio controllare ogni variabile della matrice.

if (result.a!='') { something.... } 
if (result.b!='') { something.... } 
.... 

C'è un modo migliore per rendere più veloce come in php 'foreach', 'mentre' o si dovrebbe occupare?

UPDATE

Questo codice (grazie a hvgotcodes) mi dà valori delle variabili all'interno della matrice, ma come posso ottenere i nomi delle variabili anche?

for(var k in result) { 
    alert(result[k]); 
} 

UPDATE 2

Questo è come php lato funziona

$json = json_encode(array("a" => "test", "b" => "test", "c" => "test", "d" => "test")); 
+0

Se non mi sbaglio, è possibile accedere agli attributi di ciascun oggetto JSON utilizzando il suo nome, come se fosse una proprietà. per esempio. 'JSONObject.name' per ottenere l'attributo all'interno di JSONObject che contiene' {'name': 'foo'} ' –

risposta

72

È possibile fare qualcosa di simile

for(var k in result) { 
    console.log(k, result[k]); 
} 

che loop su tutte le chiavi in ​​JSON restituita e stampa i valori. Tuttavia, se si dispone di una struttura nidificata, è necessario utilizzare

typeof result[k] === "object" 

per determinare se è necessario ciclo sugli oggetti nidificati. La maggior parte delle API che ho usato, gli sviluppatori conoscono la struttura di ciò che viene restituito, quindi questo non è necessario. Tuttavia, suppongo sia possibile che questa aspettativa non sia buona per tutti i casi.

+0

che vorrete usare come parentesi quadre. Modifica: l'hai risolto. –

+0

controlla il tuo codice –

+0

sì, mi sono davvero assicurato provando nella console. ;) – hvgotcodes

8

Certo, è possibile utilizzare foreach JS.

for (var k in result) { 
    something(result[k]) 
} 
26

Prova questo:

$.each(result,function(index, value){ 
    console.log('My array has at position ' + index + ', this value: ' + value); 
});