我目前正在开发一个应用程序,我希望将 JSON 提取到一个类中,但这比仅匹配字段要困难一些。我正在使用 Moshi 进行 JSON 管理。
以下是我拥有的 JSON:
{
"common" :{
"source_url": "xxxx",
"target_url": "yyy
},
"specific":{
"A":{
"setting": "ccc",
},
"B":{
"setting": "ddd",
}
}
}
我的目标是基于如下所示的数据类获取对象:
data class config(
val sourceUrl: String,
val targetUrl: String,
val setting: String
)
我开始的是首先创建不同的数据类,以允许我在获取上述类对象之前操作数据。
--GeneralConfig.kt
data class GeneralConfig(
val common: CommonConfig,
val specific: Specific
)
-- CommonConfig.kt
data class CommonConfig(
@Json(val name = "source_url") sourceUrl: String,
@Json(val name = "target_url") val targetUrl: String
)
-- 具体配置.kt
data class SpecificConfig(
setting: String,
)
我有两个主要问题:
SpecificConfig
.我可以在我的generalConfig
数据类直接从specific
中提取一个字段并选择 A
或 B
通过传递参数 config
目的是拥有一个包含通用数据和特定数据的json。我需要构建一个最终数据类,它从公共(public)数据和特定数据之一合并。
任何的想法 ?谢谢
最佳答案
试试这个
1.修改你的
data class SpecificConfig(
setting: String,
)
到
data class SpecificConfig(
@Json(val name = "A") val a : JsonObject,
@Json(val name = "B") val b: JsonObject
)
第二:创建另外2个类,即
data class AConfig(
setting: String,
)
data class BConfig(
setting: String,
)
第三:修改
data class config(
val sourceUrl: String,
val targetUrl: String,
val setting: String
)
到
data class config(
val sourceUrl: String,
val targetUrl: String,
val setting: String,
val a: JsonObject,
val b: JsonObject
)
关于使用 kotlin 的 Json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659607/