【问题标题】:Android Retrofit read response if key not string如果键不是字符串,Android Retrofit 读取响应
【发布时间】:2017-10-28 11:28:00
【问题描述】:

我有这样的改造回应:

langs: {
   af: "Afrikaans",
   am: "Amharic",
   ar: "Arabic",
   az: "Azerbaijani",
   ba: "Bashkir", 
...

我试图将它读给List<Map<String,String>>,但它不起作用。 有谁知道将此 json 转换为对象的最佳方法是什么?

呼叫:

val result = RestAPI.instance.retrofit?.create(TranslateService::class.java)
    val call = result?.getLangs("en")
    call?.enqueue(object : Callback<LangsResponse>{
        override fun onFailure(call: Call<LangsResponse>?, t: Throwable?) {

        }

        override fun onResponse(call: Call<LangsResponse>?, response: Response<LangsResponse>?) {

        }

    })


data class LangsResponse(val dirs: List<String>,val langs: List<Map<String,String>>)

【问题讨论】:

  • 显示你试过的代码。
  • 我将代码添加到问题中

标签: java android retrofit kotlin


【解决方案1】:

langs 是一个 JSON 对象,因此可以将其读取为 Map&lt;String,String&gt;。如果它是一个对象数组 ([{..},{..}]),它将是 List&lt;Map&lt;String,String&gt;&gt;

只需调整类型,它应该可以正确读取。

【讨论】:

  • 哦,真的。谢谢! :)
猜你喜欢
  • 2019-10-05
  • 2021-09-15
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多