循环嵌套的JSON数组

时间:2015-12-31 07:02:31

标签: java json

我有一个JSON响应,如下所示:

{
    "1":{
        "id":"1",
        "user_id":"1",
        "children":[
            {
                "id":"2",
                "user_id":"2",
                "children":[
                    {
                        "id":"3",
                        "user_id":"3",
                        "children":[
                            {
                                "id":"4",
                                "user_id":"2",
                                "children":[

                                ]
                            }
                        ]
                    },
                    {
                        "id":"5",
                        "user_id":"1",
                        "children":[

                        ]
                    }
                ]
            },
            {
                "id":"6",
                "user_id":"2",
                "children":[

                ]
            }
        ]
    },
    "7":{
        "id":"7",
        "user_id":"2",
        ...
    }
}

如您所见,我有嵌套数组(children)。我需要遍历这个JSON响应,遍历每个嵌套数组,直到它遇到一个空的children数组,然后退一步继续其余的项目。

我为响应创建了一个模型类,所以我当前的代码如下所示:

for (Post post : postResponse.getData()) {
    //
}

这显然只会遍历顶级项目(在我的情况下为17)。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

你需要一个递归函数。

function iterateTree(object) {
  if (!object) { //recursion stop criteria || you need to implement what your stop criteria is
     return;
  }
  //doSomthingWithObject();
  iterateTree(object.children);
}

我确定你弄明白了如何在java中使用它。