如何解析包含键值对的 JSON 对象?
How to parse an JSONObject containing key-value-pairs?
首先:我知道 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 结构。
也许你们有什么想法?
该死的...毕竟有时候我很盲目...
只需使用 Map<String,String>
:
data class TranslationsDto(
val translations: Map<String,String>?,
val hash: String?,
val length: Int?,
val language: String?
)
首先:我知道 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 结构。
也许你们有什么想法?
该死的...毕竟有时候我很盲目...
只需使用 Map<String,String>
:
data class TranslationsDto(
val translations: Map<String,String>?,
val hash: String?,
val length: Int?,
val language: String?
)