2010-10-25 21 views
10

मेरे पास निम्न जेसन जैसा नीचे देखा गया है। मैं TOP1, TOP2 मानों को पढ़ने की कोशिश कर रहा हूं। मुझे यह कैसे करना है इसके बारे में थोड़ा अनिश्चितता है।jquery पढ़ना नेस्टेड जेसन

मैं निम्नलिखित का उपयोग कर रहा हूं .. लेकिन यह मुझे एक वस्तु प्राप्त करता है जिसमें TOP1 और TOP2 के लिए नेस्टेड ऑब्जेक्ट्स हैं। मैं TOP1 और TOP2 मान कैसे प्राप्त करूं ??

$.getJSON('http://localhost/data/menufixed.json', 
    function(data) {    
     $.each(data, function(entryIndex, entry) { 
      var html = '<li class="top-level">'; 

     }); 
    }); 

और नीचे

{ 
"actions" : [ 
    { 
     "action": "TOP1", 
     "subaction": [ 
      { 
       "name": "A" 
      }, 
      { 
       "name": "B" 
      }, 
      { 
       "name": "C" 
      } 
     ] 
    }, 
    { 
     "action": "TOP2", 
     "subaction": [ 
      { 
       "name": "X" 
      }, 
      { 
       "name": "Y" 
      } 
     ] 

उत्तर

11

ऐसा लगता है कि आप पाश हालांकि .actions करना चाहते हैं डेटा, तो यह बदलें:

$.each(data, function(entryIndex, entry) { 
    var html = '<li class="top-level">'; 
}); 
इस के लिए

:

$.each(data.actions, function(entryIndex, entry) { 
    var html = '<li class="top-level">' + this.action + '</li>'; 
}); 

का उपयोग करनाअब आप ऑब्जेक्ट्स की उस सरणी के माध्यम से लूपिंग कर रहे हैं, और उन ऑब्जेक्ट्स .action संपत्ति वाले हैं, उदाहरण के लिए: "TOP1" और "TOP2"

+0

धन्यवाद निक के बाद मैं यही हूं! मैं एबीसी/वाईएक्स डेटा कैसे प्राप्त कर सकता हूं? – wmitchell

+4

@imerez - * ऊपर '$ .each()' कॉलबैक के अंदर, आप '$ .each (this.subaction, function() {alert (this.name);}) करेंगे; ', जो आपको देगा ए, बी, सी, इत्यादि - यहां इसका परीक्षण करें: http://www.jsfiddle.net/nick_craver/mHvvA/2/ –

+0

धन्यवाद कि आईएम के बाद क्या .. उत्कृष्ट संसाधन jsfiddle के लिए धन्यवाद भी: पी – wmitchell

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