2009-06-04 3 views
18

Önümüzdeki JSON yanıtınıJSON yanıt öğesinin bir dizi olup olmadığı nasıl kontrol edilir?

alıyorum
{ 
    "timetables":[ 
     {"id":87,"content":"B","language":"English","code":"en"},             
     {"id":87,"content":"a","language":"Castellano","code":"es"}], 
    "id":6, 
    "address":"C/Maestro José" 
    } 

sonraki sözde kod işlevi

for(var i in json) {    
    if(json[i] is Array) { 
    // Iterate the array and do stuff 
    } else { 
    // Do another thing 
    } 
} 

herhangi bir fikir elde etmek istersiniz?

cevap

41

diğer yöntemler vardır ancak, bildiğim kadarıyla bu en güvenilir:

for(var i in json) {      
    if(isArray(json[i])) { 
    // Iterate the array and do stuff 
    } else { 
    // Do another thing 
    } 
} 
+3

olduğunu olacak Bu ([ 'Array.isArray (obj)'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)) eski tarayıcılar hala gerekecektir olsa yapmak bunu bir polifiliz olarak kullanmak. – cimmanon

4
function isArray(ob) { 
    return ob.constructor === Array; 
} 
+8

Bu, çoğu durumda çalışır, ancak kurucu farklı olacağından, farklı bir pencereden/çerçeveden bir dizi sınandığınızda başarısız olur. – James