【发布时间】:2020-09-01 16:00:13
【问题描述】:
有没有办法将嵌套的 JSON 值映射到字段而不需要额外的类?我有一个 JSON 响应
{
"title": "Warriors",
"artist": "Imagine Dragons",
"apple_music": {
"url": "https://music.apple.com/us/album/warriors/1440831203?app=music&at=1000l33QU&i=1440831624&mt=1",
"discNumber": 1,
"genreNames": [
"Alternative",
"Music"
],
}
}
但是来自apple_music 我只需要url 值。所以我决定创建 Kotlin 数据类并尝试使用 @Json 注释选项
data class Song(
val title: String,
val artist: String,
@Json(name = "apple_music.url")
val appleMusicUrl: String
)
但是,这不起作用。 它在运行时抛出异常
Required value 'appleMusicUrl' (JSON name 'apple_music.url') missing at $
下面的代码正在运行
data class Song(
val title: String,
val artist: String,
@Json(name = "apple_music")
val appleMusic: AppleMusic
)
data class AppleMusic(val url: String)
我有几个嵌套值,为它们创建额外的类是相当夸张的。有没有比为apple_music 节点创建嵌套类更好的方法?
【问题讨论】:
标签: android json kotlin retrofit2 moshi