【问题标题】:Get only one parameter from json object via retrofit(gson)通过改造(gson)从json对象中只获取一个参数
【发布时间】:2020-08-15 23:17:07
【问题描述】:

json:

我只需要从源中获取 id 字段。数据类:

data class Article(
    val sourceId: String,
    val author: String,
    val title: String,
    ...
)

转换器工厂是 GsonConvertorFactory

【问题讨论】:

    标签: json kotlin gson retrofit


    【解决方案1】:

    在您提供的 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)

    【讨论】:

      猜你喜欢
      • 2017-10-31
      • 2014-05-29
      • 2018-09-23
      • 1970-01-01
      • 2014-10-16
      • 2014-04-23
      • 1970-01-01
      • 2022-01-26
      相关资源
      最近更新 更多