当前位置: 首页 > 知识库问答 >
问题:

Fuel,Kotlin,Gson,应为BEGIN_ARRAY,但在第1行为BEGIN_OBJECT

督飞羽
2023-03-14
{
    "count": 1,
    "items": [
        {
            "organization_id": 6972979,
            "organization_name": "Lorem ipsum dolor sit amet, consectetur adipisicing elit",
        }
    ]
}
class LoremModel {
    var count: Int? = null
    var items: List<Lorem>? = null

    class Lorem {
        var organization_id: Int? = null
        var organization_name: String? = null

        constructor(organization_id: Int?,  organization_name: String?) {
            this.organization_id = organization_id
            this.organization_name = organization_name
        }
    }

    class ListDeserializer : ResponseDeserializable<List<LoremModel>> {
        override fun deserialize(content: String) = Gson().fromJson<List<LoremModel>>(content, object : TypeToken<List<LoremModel>>() {}.type)
    }
}
Fuel.get("/lorem/search", listOf("keywords" to  keyword, "category" to category, "pageNum" to "1", "pageSize" to "10")).
        responseObject(LoremModel.ListDeserializer()) { request, _, item ->
        }

[失败:com.google.gson.jsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY但BEGIN_OBJECT位于第1行第2列路径$]

我怎么解决?

共有1个答案

毛勇
2023-03-14

您的json

{
    "count": 1,
    "items": [
        {
            "organization_id": 6972979,
            "organization_name": "Lorem ipsum dolor sit amet, consectetur adipisicing elit",
        }
    ]
}

表示JSON对象,而不是JSON数组。

因此,与其尝试将其反序列化为ListLoremModel对象的List类型

Gson().fromJson<List<LoremModel>>(content, object : TypeToken<List<LoremModel>>() {}.type)
Gson().fromJson(content, LoremModel::class.java)
 类似资料:
  • 我试图使用从API返回的retfit和GSON解析字符串数组: 这是在特定情况下(情况2)响应的样子: 在本例(情况2)中,我从registfit/gson得到一个错误: 我这样调用API:

  • 问题内容: 我有以下课程: 而此代码应解析json: 哪里 JSON是: 我得到的错误是: 但是我不知道为什么,根据jsonlint,json是有效的。 我为什么会收到此错误的任何主意吗? 问题答案: 您的JSON有效-但您的映射类无效(部分不匹配)。特别是,无法将类的属性映射为给定JSON中的a。很难推荐一种备用结构来存储数据而又不会看到较大的示例,但是通常在JSON结构与Java类之间进行映射

  • 问题内容: 我有以下课程: 而此代码应解析json: 哪里 JSON是: 我得到的错误是: 但是我不知道为什么,根据jsonlint,json是有效的。 我为什么会收到此错误的任何主意吗? 问题答案: 您的JSON有效-但您的映射类无效(部分不匹配)。特别是,无法将类的属性映射为给定JSON中的a。很难推荐一个备用的结构来存储数据而不会看到更大的样本,但是通常,在JSON结构和Java类之间进行映

  • 问题内容: 我在解析JSON数据时遇到以下错误: 预期为begin_array,但在第1行第34列处为STRING 我找不到解决办法。我的JSON是以下内容: 这是我的PersonContent类: 以下是人员类别: 这是我反序列化前面提到的JSON数据的代码 我尝试了在这里找到的所有解决方案,但找不到相同的JSON。 问题答案: 错误出现在您收到的json中:您的类需要一个数组,因为 但是然后在

  • 我正在尝试使用改版在我的应用程序上实现登录,但是我一直得到这个错误不确定是什么错误,java.lang.IllegalStateException:应该是BEGIN_OBJECT,但应该是BEGIN_ARRAY 这是邮递员的回复 和我的登录类