使用 kotlin 在 android 中将 json 解析为模型类时出现“空字符串”

问题描述 投票:0回答:1

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

请有解决方案我该如何管理它?

android json kotlin gson retrofit
1个回答
0
投票

当您的模型类与原始 json 结果不匹配时,就会出现此问题 通常情况下。我猜想原始 json 结果中的变量类型是“空字符串”,代码中的变量类型是“列表类型”或“自定义类类型”。您可以将 json 结果复制并粘贴到文本编辑器中并尝试格式化它,您可以看到格式化的结果。重点关注空字符串结果,并在代码中验证它是否是正确的类型。

© www.soinside.com 2019 - 2024. All rights reserved.