2013-08-06 7 views
6

मुझे कुछ JSON दिया जा रहा है मुझे तत्वों को आउटपुट करने के लिए चक्र की आवश्यकता है। समस्या यह है कि इसका यह खंड अलग-अलग संरचित है। आम तौर पर मैं सिर्फ इस तरह के तत्वों के माध्यम से लूप होगा:कुंजी/मान JSON ऑब्जेक्ट से कुंजी निकालने के लिए कैसे?

var json = $.parseJSON(data); 
json[16].events.burstevents[i] 

लेकिन मैं ऐसा नहीं कर सकते कि नीचे JSON के साथ क्योंकि वे महत्वपूर्ण मूल्य जोड़े कर रहे हैं। मैं नीचे JSON से यूनिक्स टाइमस्टैम्प कैसे निकालूं? (अर्थात 1369353600000.0, 1371600000000.0, आदि)

{"16": { 
    "events": { 
     "burstevents": { 
      "1369353600000.0": "maj", "1371600000000.0": "maj", "1373414400000.0": "maj", "1373500800000.0": "maj", "1373673600000.0": "maj" 
     }, 
     "sentevents": { 
      "1370736000000.0": "pos", "1370822400000.0": "pos", "1370908800000.0": "pos" 
     } 
    } 
    } 
} 
+1

'$ .map ({" 123 ": 345}, फ़ंक्शन (v, k) {return k;})' -> '[123 ']' – AdamKG

+0

'_.map ({" 123 ": 345 }, फ़ंक्शन (v, k) {return k;}) '->' ['123'] 'http://underscorejs.org/#map – cgTag

उत्तर

9

आप in कीवर्ड का उपयोग चाबियाँ पर पुनरावृति कर सकते हैं।

var json = $.parseJSON(data); 
var keys = array(); 
for(var key in json[16].events.burstevents) 
{ 
    keys.push(key); 
} 

आप jQuery

साथ यह कर सकते हैं
var json = $.parseJSON(data); 
var keys = $.map(json[16].events.burstevents,function(v,k) { return k; }); 

आप जावास्क्रिप्ट ऑब्जेक्ट

var json = $.parseJSON(data); 
var keys = Object.keys(json[16].events.burstevents); 
+0

ग्रेट उत्तर :) – AzzyDude

1

उपयोग कर सकते हैं इस

for(key in json["16"].events.burstevents) 
{ 
    console.log(json["16"].events.burstevents[key]); 
} 

डेमो का प्रयास करें: http://jsfiddle.net/qfMLT/

1

एक विकल्प हम यह कर सकते हैं के रूप में:

var keys=[]; 
     var i=0; 
     $.each(json, function(key, value) { 
       console.log(key, value); 
       keys[i++]=key; 
     }); 

या शायद घोंसला कुंजी के अधिक सेट, मूल्य जोड़े के लिए एक और .each

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