json
2017-06-13 149 views 0 likes 
0

我們如何遍歷給JSON對象來遍歷其所有屬性:如何通過JSON對象循環?

<script type="text/javascript"> 
var students = '{"name": "John", "age": 30, "subjects": [{ "name": "IT", "marks": 85 }, { "name": "Maths", "marks": 75 }, { "name": "English", "marks": 60 }]}'; 

var myObj = JSON.parse(students); 
alert(myObj.name);     
alert(myObj.age);     
alert(myObj.subjects[0]['name']);     
alert(myObj.subjects[0]['marks']);     
alert(myObj.subjects[1]['name']);     
alert(myObj.subjects[1]['marks']);     
alert(myObj.subjects[2]['name']);     
alert(myObj.subjects[2]['marks']);     
</script> 

你可以看到我用它的索引和屬性名訪問嵌套的「主題」的屬性。但是代碼遍歷每個項目變得冗長。爲了避免它,我想知道如何通過編寫單行代碼來訪問其所有屬性來循環(例如,在循環中)?

回答

3

你可以這樣做:

var myObj = JSON.parse(students); 
for(var index = 0; index < myObj.subjects.length; index++) {     
    alert(myObj.subjects[index]['name']);     
    alert(myObj.subjects[index]['marks']);     
} 
1

只需使用Each功能遍歷每個科目

var students = '{"name": "John", "age": 30, "subjects": [{ "name": "IT", "marks": 85 }, { "name": "Maths", "marks": 75 }, { "name": "English", "marks": 60 }]}'; 
 

 
var myObj = JSON.parse(students); 
 

 

 
$.each(myObj['subjects'], function(index, value) { 
 
    console.log(value['name']+" "+ value['marks']); 
 
    
 
}); 
 
    
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

嘗試使用字符串化

var myObj = JSON.stringify(students); 
for(var index=0;index < myObj.subjects.length;index++) { 
    alert (myObj.subjects[index]); 
} 
+0

錯誤:TypeError:myObj.subjects未定義 – user5307298

相關問題