【问题标题】:Android Retrofit - How to parse Github Emojis APIAndroid Retrofit - 如何解析 Github Emojis API
【发布时间】:2021-06-20 16:38:26
【问题描述】:

请查看此 api:https://api.github.com/emojis

这是响应的一部分:

{
  "+1": "https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png?v8",
  "-1": "https://github.githubassets.com/images/icons/emoji/unicode/1f44e.png?v8",
  "100": "https://github.githubassets.com/images/icons/emoji/unicode/1f4af.png?v8",
  "1234": "https://github.githubassets.com/images/icons/emoji/unicode/1f522.png?v8",
  "1st_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f947.png?v8",
  "2nd_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f948.png?v8",
  "3rd_place_medal": "https://github.githubassets.com/images/icons/emoji/unicode/1f949.png?v8",
  "8ball": "https://github.githubassets.com/images/icons/emoji/unicode/1f3b1.png?v8",
  "a": "https://github.githubassets.com/images/icons/emoji/unicode/1f170.png?v8",
  "ab": "https://github.githubassets.com/images/icons/emoji/unicode/1f18e.png?v8",
  "abacus": "https://github.githubassets.com/images/icons/emoji/unicode/1f9ee.png?v8",
  "abc": "https://github.githubassets.com/images/icons/emoji/unicode/1f524.png?v8",
  "abcd": "https://github.githubassets.com/images/icons/emoji/unicode/1f521.png?v8",
}

我想将此响应转换为表情符号列表。

data class Emoji(
    val name: String,
    val url: String,
)

请注意,响应是一个大对象,我需要一个列表。

这就是我实例化改造的方式:

val retrofit = Retrofit.Builder()
        .baseUrl(BuildConfig.BASE_URL)
        .addConverterFactory(MoshiConverterFactory.create())
        .build()

我怎样才能实现它?

【问题讨论】:

    标签: android kotlin retrofit moshi


    【解决方案1】:

    您没有附加 Api 接口,但根据您的描述,您已将 List<Emoji> 放入您的 api 接口中,这将引发 MalformedJSONException

    请改用Map<String, String>,如果您需要列表,请使用responseMap.map{ Emoji(it.key, it.valie) }

    【讨论】:

    • 我忘记将我的 Api 附加到问题中的改造。有效!谢谢!
    猜你喜欢
    • 2020-05-11
    • 2016-03-07
    • 2016-01-11
    • 2018-12-30
    • 1970-01-01
    • 2019-12-30
    • 2021-01-07
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多