如何定义动态数据 class? (Android - 改造 2)

How can I define dynamic data class? (Android - Retrofit2)

我正在通过 Kotlin 开发 Android 应用程序。该应用程序使用 Retrofit2 处理 HTTP 请求。我反复使用Retrofit2,但我不知道如何解决这种情况。

我想使用一个 API,它需要像 query1、query2 等查询(接近 100 个可用值)

例如:

When I send a request via "query1" the response object has coordinates: List<List<List<Double>>>
When I send a request via "query2" the response object has coordinates: List<List<Double>>
When I send a request via "query3" the response object has coordinates: List<List<List<List<Double>>>>
When I send a request via "query4" the response object has coordinates: List<List<Double>>

我不知道 API returns 内部列表如何计数。 顺便说一句,对象中只有一个坐标。

JSON格式的响应对象

[
    {
        "key-1": "value-1",
        "key-2": "value-2",
        "key-3": "value-3",
        "key-4": {
            "inner-key": [
                [
                    [
                        1.0,
                        1.0
                    ],
                    [
                        1.0,
                        1.0
                    ]
                ]
            ]
        }
    },
    {
        "key-1": "value-1",
        "key-2": "value-2",
        "key-3": "value-3",
        "key-4": {
            "inner-key": [
                [
                    [
                        [
                            1.0,
                            1.0
                        ],
                        [
                            1.0,
                            1.0
                        ]
                    ],
                    [
                        [
                            1.0,
                            1.0
                        ],
                        [
                            1.0,
                            1.0
                        ]
                    ]
                ]
            ]
        }
    }
]

这是我的数据类。但是我不知道如何定义“key4”对象。

data class Response(
    val key1: String? = null,
    val key2: String? = null,
    val key3: String? = null,
    val key4: key4? = null,
)
data class key4(
    //How should I define the "inner-key" object
)

任何建议都会有所帮助。

解决方案:

我尝试了几种解决方法。我不知道这是完美的解决方案,但有我的 解决方案:

有我的数据class,我的问题中名字是key4。

data class key4(
    val inner-key: List<Any>? = null
)

我也像这样投射内键:

val temp = response?.key4?.inner-key as List<List<Double>>?

val temp = response?.key4?.inner-key as List<List<List<Double>>>?