【发布时间】:2020-12-05 03:23:57
【问题描述】:
我正在尝试让CatAPI 工作。我的代码正在编译和运行,Dog API(我成功实现)工作得很好。但是,每当我使用 CatAPI 的按钮时,都会出现此错误:
I/catError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
我想这与我尝试读取 JSON 的方式有关。但是,我不知道在这里做什么。 这是我的代码:
CatService.kt:
interface CatService{
@GET("images/search")
fun randomCat(): Call<Cat>
}
Cat.kt
class Cat (
var id: String,
var url: String,
var breeds: List<Any>,
var width: Int,
var height: Int
)
MainActivity.kt:
private fun catFunction(){
val retrofitCat = Retrofit.Builder()
.baseUrl("https://api.thecatapi.com/v1/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val catService: CatService = retrofitCat.create(CatService::class.java)
val callCat = catService.randomCat().enqueue(object:Callback<Cat>{
override fun onResponse(call: Call<Cat>, response: Response<Cat>) {
val randomCat = response.body()!!
Log.i("catMessage", randomCat.url)
Picasso.get()
.load(randomCat.url)
.into(imgView)
}
override fun onFailure(call: Call<Cat>, t: Throwable) {
Log.i("catError", t.toString())
}})
}
谢谢!
【问题讨论】:
-
它告诉你问题... cat api 正在返回一个
JSONArray即[{}, {}]并且 dog 正在返回一个对象{} -
谢谢@DavidKroukamp。但是,我不知道如何解决这个问题?这可能很愚蠢,但我仍然是初学者。我真的不知道在这里做什么。不过,我正在寻找更多关于它的信息。谢谢!
-
查看我的回答@Isadora