gson 在android中使用Kotlin将json解析为model类时出现“空字符串”

34gzjxbg  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(155)

我是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

请问有没有解决办法,我该怎么办?

fv2wmkja

fv2wmkja1#

当你的model class与你的原始json结果不匹配时,就会出现这个问题。我猜你的原始json结果上的变量类型是“空字符串”,而你的代码上的变量类型是“列表类型”或“自定义类类型”。你可以将你的json结果复制粘贴到文本编辑器中,并尝试格式化它,你可以看到格式化的结果。关注空字符串结果,并在代码中验证它是否是正确的类型。

相关问题