如果key不是字符串,Android Retrofit会读取响应

时间:2017-05-27 19:14:52

标签: java android retrofit kotlin

我有这样的改装回复:

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>>)

1 个答案:

答案 0 :(得分:1)

langs是一个JSON对象,因此可以将其读作Map<String,String>。如果它是一个对象数组([{..},{..}]),它将是List<Map<String,String>>

只需调整类型即可正常阅读。