使用jQuery / JS通过嵌套JSON在JSON / Iterate中获取子项内的子项?

时间:2015-08-02 21:05:34

标签: javascript jquery json

我想知道这是否可行,如果是的话 我该怎么做呢:

[
{
    "name": "Hello",
    "views": 10,
    "subMovie": [
        {
        "name": "World",
        "views": 10,
        "subMovie": [
            {
            "name": "Test 1",
            "views": 10,
            "subMovie": [
                {
                "name": "Test 2",
                "views": 10,
                "subMovie": [
                    {
                        "name": "Test 3",
                        "views": 10,
                        "subMovie": [],
                        "id": 5
                    }
                ],
                "id": 4
                }
            ],
            "id": 3
            }
        ],
        "id": 2
        }
    ],
    "id": 1
}
]

到达最后一个孩子(subMovie)?

我想要全部访问它们并打印出来, 但是如何使用jQuery / JavaScript在子项中循环这个子项?

2 个答案:

答案 0 :(得分:3)

以下代码将从movies数组的最后一个元素开始。之后,它将通过选择它访问的每部电影的最后一个数组元素进入subMovie树,直到没有subMovie为止。

var movies = [
{
    "name": "Hello",
    "views": 10,
    "subMovie": [
        ...
    ],
    "id": 1
}
];

var m = movies[movies.length - 1];

while(m.subMovie.length >= 1) {
    console.log(m.name);
    m = m.subMovie[m.subMovie.length - 1];   
}

console.log(m); //Object {name: "Test 3", views: 10, subMovie: Array[0], id: 5}

答案 1 :(得分:1)

这不是单个JSON对象。您有数组包含JSON对象。如果您想了解有关JSON的更多信息,请查看 this article

考虑到您的数组名称为data,如下所示:

var data = [
{
    "name": "Hello",
    "views": 10,
    "subMovie": [
        {....
}
]

使用以下代码:

data[0].subMovie[0].subMovie[0].subMovie[0].subMovie[0];

那将返回:

Object {name: "Test 3", views: 10, subMovie: Array[0], id: 5}

希望有所帮助。