2012-10-22 8 views
7

Possible Duplicate:
jquery reading nested jsonjQuery या जावास्क्रिप्ट के साथ AJAX के माध्यम से पढ़ने नेस्टेड JSON और टेबल

मैं वास्तव में संभावित गहरी घोंसले के साथ प्रत्येक JSON में एक से अधिक रिकॉर्ड लूप करने के लिए एक कठिन और तेजी से विधि के लिए, चाहते हैं करने के लिए outputting। मैं बस एक टेबल पर आउटपुट करना चाहता हूं।

मुझे यकीन है कि फ़ंक्शन() के लिए $ .each() या $ .ajax() सफलता की जावास्क्रिप्ट पद्धति के लिए फ़ंक्शन() के माध्यम से कौन से तर्क पारित किए जाने की आवश्यकता है। सभी उदाहरण सामान्य शब्द "डेटा" या "obj" का उपयोग करने लगते हैं, लेकिन उन मुझे भ्रमित - कर रहे हैं वे निर्मित कार्यात्मक बहस या मैं उन्हें जो कुछ भी मुझे पसंद चाहते नाम कर सकते हैं:

$.each(foo, function(bar){ 

}); 

और कैसे मैं का ट्रैक रख सकते मैं लूप/घोंसला में कहाँ हूँ?

मैं JQuery का उपयोग करना पसंद करूंगा, लेकिन मुझे ऐसा करने के लिए सीधे-आगे जावास्क्रिप्ट विधि भी जाननी चाहिए। और मैं यह भी जानना चाहूंगा कि कोड के सौ लाइनों के बिना यह संभव है या नहीं।

एक उदाहरण के रूप में इस JSON के साथ

:

{ 
    date: " 2012-10-18 16:58:35.104576", 
    data: [{ 
    title: "The Princess Bride", 
    rating: "PG", 
    length: 128, 
    stars: [ 
     "Gary Elwes", 
     "Robin Wright", 
     "Christopher Guest" 
    ] 

    }, { 
    title: "This is Spinal Tap", 
    rating: "R", 
    length: 105, 
    stars: [ 
     "Christopher Guest", 
     "Michael McKean", 
     "Harry Shearer" 
    ] 
    }] 
} 

मैं किसी भी उपयोगी उदाहरण है कि नेस्ट शामिल JSON, StackOverflow में भी यहाँ नहीं मिल रहा।

प्रत्येक तत्व को तालिका कक्ष में लूप करने और असाइन करने का सबसे प्रभावी तरीका क्या है? एचटीएमएल आउटपुट महत्वपूर्ण नहीं है - मुझे पता है कि टेबल कैसे बनाना है ... मैं "सितारों" कैसे प्राप्त करूं?

जब मैं क्रोम कंसोल और बस $.getJSON('/example'); का उपयोग मैं पूरी JSON responseText में लौट आए, न JSON डॉक्स में "{"date":"2012-10-18 ,"data": [{"title": "The Princess Bride", हालांकि के साथ शुरू हो, $ .getJSON पर JQuery डॉक्स, और न ही किसी जावास्क्रिप्ट उदाहरण में मैं मिल सकता है एक responseText का संदर्भ। तो, मैं खो गया हूँ। $ .getJSON को क्या प्रतिक्रिया है प्रतिक्रिया प्रतिक्रिया को ऑब्जेक्ट करने की आवश्यकता है?

+0

आपकी अंतिम टिप्पणी के संबंध में, आप इसे पार्स करना चाहेंगे। 'Var myData = JSON.parse (respondText) आज़माएं;' आपको इसे कंसोल पर आउटपुट करने में भी मदद मिल सकती है: 'console.log (myData)' तो आप कुछ var varars = myData.data [0] कर सकते हैं ] .stars; ' मुझे बताएं कि क्या आपके डेटा के माध्यम से लूपिंग के बारे में आपके कोई प्रश्न हैं। – IanW

उत्तर

8

obj.data[0].stars  // Will get you the stars in the 1st Object 

obj.data[0].stars[0] // Gary Elwes 

FIDDLE

पुनरावृति करने के लिए के माध्यम से सितारे आपत्ति आप इस

$.each(obj.data , function(key , value){ // First Level 
    $.each(value.stars , function(k , v){ // The contents inside stars 
     console.log(v) 
    });   

}); 

UPDATED FIDDLE

संपादित कोशिश कर सकते हैं की कोशिश

$.ajax({ 
     // Parameters 

     success : function(obj){ 
      $.each(obj.data , function(key , value){ // First Level 
       $.each(value.stars , function(k , v){ // The contents inside stars 
        console.log(v) 
       });  
      }); 
     } 
    }); 
+0

क्या होगा यदि JSON AJAX के माध्यम से आ रहा है? मैं AJAX के माध्यम से var obj कैसे आवंटित कर सकते हैं? – Smittles

+1

चेक संपादित पोस्ट .. आप अपने Ajax अनुरोध –

+0

के कॉलबैक में होगा आपत्ति जब मैं कार्य करें: ' $ .ajax ({ \t यूआरएल: '/ उदाहरण', \t डेटाप्रकार: 'json', \t सफलता : फ़ंक्शन (ओबीजे) { \t \t $ .each (obj।डेटा, समारोह (कुंजी, मूल्य) { \t \t $ .प्रत्येक (value.stars, समारोह (कश्मीर, वी) { \t \t चेतावनी (v); \t \t}); \t \t}); \t} }); ' मुझे 'अनकॉल्ड टाइपरर' मिलता है: अपरिभाषित ' की संपत्ति' लंबाई 'नहीं पढ़ सकता है, मैं चाहता हूं कि मैं इसे स्वयं डिबग कैसे कर सकता हूं, लेकिन मैं गलत क्या कर रहा हूं? – Smittles

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