Надо спарсить такой
JSON. Мой вариант с обычным map'ом возвращает null, а создавать отдельные переменные на каждый объект (как предлагает мне авто-парсер) я не хочу.
Мой вариант:
data class ModelList(
val map: Map<String, String>
)
Вызов через Retrofit :
retrofit = Retrofit.Builder()
.baseUrl("https://openexchangerates.org/")
.addConverterFactory(GsonConverterFactory.create())
.build()
retrofit!!.create(Api::class.java).currencies().enqueue(object : Callback<ModelList>{
override fun onResponse(call: Call<ModelList>, response: Response<ModelList>) {
if (response.body() != null){
// rec_list.apply {
// layoutManager = LinearLayoutManager(this@MainActivity)
// }
}else{
showAlert("Error Get: "+ response.code(), response.message(), this@MainActivity)
}
}
override fun onFailure(call: Call<ModelList>, t: Throwable) {
showAlert("Error Get: Fail", t.message.toString(), this@MainActivity)
}
})
Интерфейс:
interface Api {
@GET("currencies.json")
fun currencies(): Call<ModelList>
}
Результат:
Предложение авто-парсера:
data class Test(
var AED: String,
var AFN: String,
var ALL: String,
var AMD: String,
var ANG: String,
var AOA: String,
var ARS: String,
var AUD: String,
var AWG: String,
var AZN: String,
var BAM: String,
var BBD: String,
var BDT: String,
var BGN: String,
var BHD: String,
var BIF: String,
var BMD: String,
var BND: String,
var BOB: String,
var BRL: String,
var BSD: String,
var BTC: String,
var BTN: String,
var BWP: String,
var BYN: String,
var BZD: String,
var CAD: String
.......