Android 在json对象上构建特定对象循环递归函数的arraylist

Android 在json对象上构建特定对象循环递归函数的arraylist,android,json,function,recursion,kotlin,Android,Json,Function,Recursion,Kotlin,我正在尝试获取自定义对象的数组: 我有一个json对象,它包含一个问题列表。问题可能有子问题,子问题可能有其他子问题。我的json是这样的: class Question { val questions = listOf<Question>() } fun extractQuestions(questionList: List<Question>): List<Question> = questionList.flatMap { listOf

我正在尝试获取自定义对象的数组:

我有一个json对象,它包含一个问题列表。问题可能有子问题,子问题可能有其他子问题。我的json是这样的:

class Question {
    val questions = listOf<Question>()
}

fun extractQuestions(questionList: List<Question>): List<Question> =
    questionList.flatMap { listOf(it) + extractQuestions(it.questions) }
  • 该组包含标签问题
  • 条件包含响应
  • 子项包含其他组/条件/子项
我需要在每个成员上循环并创建一个GroupConditions对象的arraylist,以便能够按如下顺序提问所有问题:


我被堵住了,你能帮我吗。对不起我的英语。非常感谢。

我想可能是这样的:

class Question {
    val questions = listOf<Question>()
}

fun extractQuestions(questionList: List<Question>): List<Question> =
    questionList.flatMap { listOf(it) + extractQuestions(it.questions) }
课堂提问{
val questions=listOf()
}
有趣的问题(问题列表:列表):列表=
questionList.flatMap{listOf(it)+extractQuestions(it.questions)}

对象中有一个
open:Boolean
属性,我认为应该使用它。谢谢Andrey,我刚刚使用flatmap递归方法稍微修改了我的代码,它很有效!如果有孩子的话,你必须使用JSONElements并步行。然后根据密钥确定如何处理子项。这将是乏味的,但你至少可以递归地去做。不确定您遇到的问题是什么,除非您试图获取所有json并放入一个对象,否则这是行不通的。您需要在树上行走,在找到元素时抓住它们,并确定此时正在构建的对象。