我是Android开发者,
我在进行API调用时遇到问题。
我正在接收大量数据,进行API调用,并且我获得了API调用成功,我可以在logcat中看到JSON响应。
现在我将JSON响应转换为一个模型类。然后我遇到了一个问题。我得到了一个类似于“空字符串”的异常。
但我的数据量很大,我找不到问题到底出在哪里。
这是我使用的
Retrofit
-用于API调用Gson
-用于转换和处理数据
我试过什么?
ActivitiesApiRepository.searchActivities(object : retrofit2.Callback<JsonElement> {
//...
override fun onResponse(call: Call<JsonElement>, response: Response<JsonElement>) {
val mResponse = Gson().fromJson(response.body(), MyModelClass::class.java)
}
}
字符串
- 二次尝试
ActivitiesApiRepository.searchActivities(object : retrofit2.Callback<MyModelClass> {
//...
override fun onResponse(call: Call<MyModelClass>, response: Response<MyModelClass>) {
val mResponse = response.body() as MyModelClass
}
}
型
每次我得到相同的异常empty String
请问有没有解决办法,我该怎么办?
1条答案
按热度按时间fv2wmkja1#
当你的model class与你的原始json结果不匹配时,就会出现这个问题。我猜你的原始json结果上的变量类型是“空字符串”,而你的代码上的变量类型是“列表类型”或“自定义类类型”。你可以将你的json结果复制粘贴到文本编辑器中,并尝试格式化它,你可以看到格式化的结果。关注空字符串结果,并在代码中验证它是否是正确的类型。