gpt4 book ai didi

java - 循环遍历嵌套 JSON 数组,获取具有相同对象模型的子级

转载 作者:行者123 更新时间:2023-12-01 08:57:56 25 4
gpt4 key购买 nike

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

[
{
"id": 5,
"user_id": 1,
"message": "Hello",
"children": [
{
"id": 7,
"user_id": 2,
"message": "Hi",
"children": [
{
"id": 8,
"user_id": 3,
"message": "Hey",
"children": [

]
}
]
}
]
},
{
"id": 6,
"user_id": 4,
"message": "Ahoy",
"children": [

]
}
]

我已经创建了模型 ( Message.java )。调用getChildren()即可找回 child 。响应保存在列表 List<Message> messages 中.

如何循环遍历此 JSON 数组以获取每个子项的内容,直到没有子项为止?如果没有递归函数,这可能吗?

最佳答案

我假设您有列表消息:

以下是如何使用递归和迭代方式浏览所有子项:

List<Message> messages = //you already have that

System.out.println("Using Recusion : ");

for (Message message : messages) {
printMessage(message);
}

System.out.println("Using Iterative : ");

Stack<Message> stack = new Stack<>();
stack.addAll(messages);

while (!stack.empty()) {
Message item = stack.pop();
System.out.println(item.getId() + ":" + item.getUser_id() + ":" + item.getMessage());
for (Message chidren : item.getChildren()) {
stack.push(chidren);
}
}

这是 printMessage 方法:

public static void printMessage(Message pmessage) {
System.out.println(pmessage.getId() + ":" + pmessage.getUser_id() + ":" + pmessage.getMessage());
for (Message message : pmessage.getChildren()) {
printMessage(message);
}
}

关于java - 循环遍历嵌套 JSON 数组,获取具有相同对象模型的子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com