2009-06-04 4 views
18

मैं अगले JSON उत्तरकैसे जांचें कि कोई JSON प्रतिक्रिया तत्व सरणी है या नहीं?

प्राप्त कर रहा
{ 
    "timetables":[ 
     {"id":87,"content":"B","language":"English","code":"en"},             
     {"id":87,"content":"a","language":"Castellano","code":"es"}], 
    "id":6, 
    "address":"C/Maestro José" 
    } 

मैं अगले छद्म कोड कार्यक्षमता

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

किसी भी विचार प्राप्त करने के लिए चाहते हैं?

उत्तर

41

अन्य तरीकों रहे हैं लेकिन, मेरी जानकारी के लिए, यह सबसे विश्वसनीय है:

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

अब जावास्क्रिप्ट में एक मूल कार्य है जो करेगा ऐसा करें (['Array.isArray (obj)'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)), हालांकि पुराने ब्राउज़र को अभी भी आवश्यकता होगी इसे पॉलीफिल के रूप में भरोसा करने के लिए। – cimmanon

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

यह ज्यादातर स्थितियों में काम करेगा लेकिन जब आप अलग-अलग विंडो/फ्रेम से सरणी का परीक्षण कर रहे हों तो यह असफल हो जाएगा क्योंकि कन्स्ट्रक्टर अलग होगा। – James

संबंधित मुद्दे