首页 > 解决方案 > 如何解析包含键值对的 JSONObject?

问题描述

首先:我知道 JSON 应该包含一个带有键值对的数组,但它不是我的 API,所以我无法更改它。

这是响应的样子:

{
    "translations": {
        "my.key.nr.0": "Value 0",
        "my.key.nr.1": "Value 1",
        "my.key.nr.2": "Value 2",
        "my.key.nr.3": "Value 3",
    },
    "hash": "123xyz",
    "length": 3,
    "language": "de"
}

到目前为止,这是我的 DTO:

data class TranslationsDto(
    val translations: ??????????, // <-- dont't know what to use here
    val hash: String?,
    val length: Int?,
    val language: String?
)

最后,这是我的问题:

我需要将响应(至少 Retrofit 应该解析响应)解析为我可以在我的应用程序中使用的 DTO。如果 的值translations是一个数组,就没有问题,但我不知道如何解析这个 JSON 结构。

也许你们中的任何人都有一些想法?

标签: jsonparsingkotlinretrofit2dto

解决方案


该死的……有时候我真的很瞎……

只需使用Map<String,String>

data class TranslationsDto(
    val translations: Map<String,String>?,
    val hash: String?,
    val length: Int?,
    val language: String?
)

推荐阅读