如何解析包含多种数据类型的json数组?

How to parse json array which contains multiple data types?

我在 json 数组中从 API 响应中获取两种类型的数据:字符串和 json 对象

 JSON::
{
"elements": [
    "task.",
    "weeks.",
    {
        "image_url": "https://www.graph-2x.jpg"
    }
]
}

data class::
  @SerializedName("elements" ) var bodyElements : ArrayList<String> = arrayListOf()

它抛出错误,因为我已经提到数据类型是字符串。谁能建议我如何在 Kotlin 中解析多类型 json 数组?提前致谢。

对于这种特定的 JSON 格式,您可以使用以下格式:

使用Any作为数据类型:

data class ElementsResponse(@SerializedName("elements") val elements: ArrayList<Any>)

并使用响应,检查 AnyString 还是 LinkedTreeMap

when(element) {
    is String -> {
        // task. or weeks.
        println("string: $element")
    }
    is LinkedTreeMap<*, *> -> {
        // key: image_url / value: https://www.graph-2x.jpg
        println("image_url: ${element["image_url"]}")
    }
}