json - 如何解析包含键值对的 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 结构。
也许你们中的任何人都有一些想法?
解决方案
该死的……有时候我真的很瞎……
只需使用Map<String,String>
:
data class TranslationsDto(
val translations: Map<String,String>?,
val hash: String?,
val length: Int?,
val language: String?
)
推荐阅读
- php - 如何在 Magento2 的发票 pdf 格式中通过“echo”添加简单消息?
- python-3.x - 在单个表达式中过滤列表实例(或对象)中的元素
- swift - 快速为系统协议可选要求进行通用实现的最简单方法是什么?
- c++ - 为什么这不打印 sum 的最终输出?
- javascript - 机器人状态临时更改
- machine-learning - 当我们有 CountVectorizer 和 Tfidfvectorizer 时,NLP 中的 Tokenization 和 Lemmatization 的用例是什么
- python - 为什么最后一个端口号没有被附加到列表中?
- c# - EF Code First - 更改列最大长度而不最大化 DB
- sql - 使用日期为 2019-04-01 的时间函数使用 sqlite3 将时间增加 2 小时
- esb - 无法初始化启动控制器。找不到任务管理器