在JSON中获取子元素/使用jQuery/JS迭代嵌套JSON

Get child inside a child in JSON / Iterate through nested JSON with jQuery/JS?

本文关键字:JSON jQuery JS 迭代 嵌套 使用 元素 获取      更新时间:2023-09-26

我想知道这是否可能,如果是的话

[
{
    "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的子元素中循环呢?

下面的代码将从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}

这不是一个JSON对象。数组包含JSON对象。如果您想了解更多关于JSON的信息,请查看这篇文章

考虑到您的数组命名为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}

希望有帮助。