如何遍历嵌套在对象中的数组?

时间:2012-02-29 02:08:31

标签: jquery

我正在尝试使用jquery获取主题数组中的数据内容。如何才能做到这一点 ?我尝试使用$.each但无法获取内容。

  "student": {
    "name": "sdfdsf",
    "age": 3,
    "subject": [
        {
            "science": "dfsdfdfd",
            "book": "sdfds"
        },
        {
            "math": "vbcb",
            "book": "sdfds"
        }
    ]
}

3 个答案:

答案 0 :(得分:2)

不确定您遇到了什么问题,但以下内容将循环讨论相关数组:

for(var i = 0; i < student.subject.length; i++){
    //student.subject[i] refers to the current item in the array
}

通常使用$.each()循环对象的属性。在这种情况下,您只需循环遍历数组。

答案 1 :(得分:1)

给定JSON(让我们在这里称之为信息)是一个具有节点名称,年龄,主题的对象。 Subject是一个包含名称和书键值对的JSON数组。

在这里,您需要首先访问主题节点,这是一个数组并迭代数组以获取每个子主题。可以在每个数组元素处再次访问键值对。

以下是迭代内容的源代码。

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<style>
</style>
<script type="text/javascript">
$(document).ready(function() {
var info={"student": {
    "name": "Tom",
    "age": 3,
    "subject": [
        {
            "science": "scscsc",
            "book": "SciBook"
        },
        {
            "maths": "mmmm",
            "book": "MathBook"
        },
        {
            "History": "hshshs",
            "book": "hisBook"
        }
]
}};
    var subjects=info["student"]["subject"];
    //Iterate all the subejcts present in the subject Node

    for(i=0;i<subjects.length;i++){
    // Get the information of particular subejct
        $.each(subjects[i],function(key,val){
           alert(i+"> Sub[ "+key+" ]="+val);
        })
    }
 });
</script>
</head>
<body>
</body>
</html>

答案 2 :(得分:0)

在数组上使用$ .each:

$.each( student.subject, function ( arrayIndex, arrayItem){
     console.log( arrayItem.science);
});