如何解析包含键值对的JSONObject?

时间:2019-07-30 13:11:47

标签: json parsing kotlin retrofit2 dto

起初:我知道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解析响应)到可在我的App中使用的DTO。如果translations的值是一个数组,那将没有问题,但我无法理解如何解析此JSON结构。

也许任何人都有一些想法吗?

1 个答案:

答案 0 :(得分:2)

该死...有时候我毕竟还是很盲目的...

只需使用Map<String,String>即可:

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