2011-10-22 11 views
56

का उपयोग कर JSON सरणी के लिए कुंजी/मान जोड़ी प्राप्त करें I JSON सरणी के माध्यम से लूप ढूंढ रहा हूं और कुंजी और मान प्रदर्शित करता हूं।लूप और jQuery

यह निम्नलिखित पोस्ट का एक सरलीकृत संस्करण होना चाहिए, लेकिन मैं वाक्य रचना सही है लगता नहीं है: jQuery 'each' loop with JSON array

मैं भी पोस्ट Get name of key in key/value pair in JSON using jQuery? देखा था, लेकिन यह भी बहुत सारे तरह लग रहा था एक साधारण गतिविधि के लिए कोड।

यह दिखाता है मैं क्या देख रहा हूँ (लेकिन यह काम नहीं करता है):

var result = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
$.each(result, function(k, v) { 
      //display the key and value pair 
      alert(k + ' is ' + v); 
     }); 

कोई अनिवार्य jQuery आवश्यकता है, लेकिन यह उपलब्ध है। यदि यह आवश्यक कोड को कम करता है तो मैं JSON को पुन: व्यवस्थित भी कर सकता हूं।

+2

आपको सबसे पहले एक जावास्क्रिप्ट वस्तु को JSON पार्स करने के लिए की है। –

उत्तर

133

आपके पास एक JSON क्रमबद्ध जावास्क्रिप्ट ऑब्जेक्ट का प्रतिनिधित्व करने वाली स्ट्रिंग है। इसकी संपत्तियों के माध्यम से लूप करने में सक्षम होने से पहले आपको इसे किसी जावास्क्रिप्ट ऑब्जेक्ट पर वापस deserialize करने की आवश्यकता है। अन्यथा आप इस स्ट्रिंग के प्रत्येक व्यक्तिगत चरित्र के माध्यम से लूपिंग करेंगे।

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
var result = $.parseJSON(resultJSON); 
$.each(result, function(k, v) { 
    //display the key and value pair 
    alert(k + ' is ' + v); 
}); 

Live demo

+0

उत्कृष्ट। मैंने var परिणाम = $ .parseJSON (परिणाम जेएसओएन) जोड़ा; और अब यह काम करता है। – JStark

+2

अच्छी तरह से लिखित स्पष्टीकरण। –

+0

@ डारिन "इंडेक्स" मूल्य कैसे प्राप्त करें? –

17
var obj = $.parseJSON(result); 
for (var prop in obj) { 
    alert(prop + " is " + obj[prop]); 
} 
0

इस समस्या के लिए सबसे अच्छा और सही समाधान:

मैं अजाक्स सफलता प्रतिक्रियाओं के साथ jQuery कोशिश की, लेकिन यह काम नहीं करता तो मैं अपने ही आविष्कार किया और अंत में यह काम करता है!

Click here to see the full solution

var rs = '{"test" : "Got it perfect!","message" : "Got it!"}'; 
eval("var toObject = "+ rs + ";"); 
alert(toObject.message); 
6

आप सीधे इस तरह एक सरणी के मामले में मूल्यों को प्राप्त कर सकते हैं:

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
var result = $.parseJSON(resultJSON); 
result['FirstName']; // return 'John' 
result['LastName']; // return ''Doe' 
result['Email']; // return '[email protected]' 
result['Phone']; // return '123' 
5

निम्नलिखित एक JSON के लिए काम करना चाहिए स्ट्रिंग लौट आए। यह डेटा की एक सहयोगी सरणी के लिए भी काम करेगा।

for (var key in data) 
    alert(key + ' is ' + data[key]); 
+0

'JSON' स्ट्रिंग को 'JSON' ऑब्जेक्ट में पार्स किया जाना है। – mythicalcoder

2

JSON स्ट्रिंग को पार्स करें और आप चाबियों के माध्यम से लूप कर सकते हैं।

var resultJSON = '{"FirstName":"John","LastName":"Doe","Email":"[email protected]","Phone":"123 dead drive"}'; 
 
var data = JSON.parse(resultJSON); 
 

 
for (var key in data) 
 
{ 
 
    //console.log(key + ' : ' + data[key]); 
 
    alert(key + ' --> ' + data[key]); 
 
}

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