У меня есть JSON
, который выглядит следующим образом:
[{"name":"John","age":30,"vehicle":"bicycle"},
{"name":"Bob","age":32,"vehicle":"walking"}]
interface
@GET("lnjb8")
fun findPosts(): Call<List<RetrofitVariables>>
Переменные для десериализации:
class RetrofitVariables(name: String, age: String, vehicle: String) {}
Ив MainActivity()
:
val myRetrofit = Retrofit.Builder()
.baseUrl("https://api.myjson.com/bins/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val repository = myRetrofit.create(RetrofitCalls::class.java)
val call = repository.findPosts()
... с последующим асинхронным вызовом:
call.enqueue(object: Callback<List<RetrofitVariables>> {
override fun onResponse(call: Call<List<RetrofitVariables>>?, response: Response<List<RetrofitVariables>>?) {
val jsonVariables = response!!.body()
//THIS SHOULD PRODUCE THE PROPER DATA
jsonVariables!!.forEach { println("TAG testing" + it) }
}
override fun onFailure(call: Call<List<RetrofitVariables>>?, t: Throwable?) {
println("TAG FAIL")
}
})
jsonVariables!!.forEach { println("TAG testing" + it) }
должен дать мне данные, но вместо этого он просто дает testingcom.slothmode.retrofitexercise.RetrofitVariables@83098f7
Очевидно, что он собирает данные, так как получает ответ, но я, должно быть, упустил, как правильно их отобразить.В предыдущих проектах я использовал value
, как в x.value.toString (), но я не вижу, как это применимо здесь.
Как отобразить правильные данные?