В настоящее время я работаю над приложением, и я хотел бы получить 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
)
- SpecificConfig.kt
data class SpecificConfig(
setting: String,
)
У меня есть 2 основных вопроса:
Как я могу получить доступ к «конкретным» «A / B» данным и получить класс объекта SpecificConfig
.Могу ли я в моем generalConfig
классе данных напрямую извлечь одно поле из specific
и выбрать A
или B
, передав аргумент
Можно ли избежать создания нескольких данныхкласс, чтобы получить мой последний объект класса config
Цель состоит в том, чтобы иметь json, содержащий общие данные и конкретные данные.Мне нужно создать окончательный класс данных, который объединяется с общими данными и одним из конкретных данных.
Есть идеи?Спасибо