【发布时间】:2020-08-15 23:17:07
【问题描述】:
json:
我只需要从源中获取 id 字段。数据类:
data class Article(
val sourceId: String,
val author: String,
val title: String,
...
)
转换器工厂是 GsonConvertorFactory
【问题讨论】:
json:
我只需要从源中获取 id 字段。数据类:
data class Article(
val sourceId: String,
val author: String,
val title: String,
...
)
转换器工厂是 GsonConvertorFactory
【问题讨论】:
在您提供的 JSON 中,source 是一个复杂对象,因此您不能将其定义为字符串,除非您创建一个 custom deserialiser。不过,让这个工作的一个快速方法是创建另一组类来模仿 JSON 结构,如下所示:
data class Source(
val id: String
)
data class Article(
val source: Source,
val author: String,
val title: String
)
那么你可以这样使用它:
fun main() {
val json = """ {
"source": {
"id": "bbc-news",
"name": "BBC News"
},
"author": "BBC News",
"title": "Afrobeat pioneer Tony Allen dies aged 79"
}
""".trimIndent()
val gson = GsonBuilder().create()
val article = gson.fromJson(json, Article::class.java)
println(article)
}
这打印:Article(source=Source(id=bbc-news), author=BBC News, title=Afrobeat pioneer Tony Allen dies aged 79)。
【讨论】: