gpt4 book ai didi

java - GSON异常: Expected BEGIN_ARRAY but was BEGIN_OBJECT

转载 作者:行者123 更新时间:2023-12-01 21:34:31 47 4
gpt4 key购买 nike

我从 .NET WS 获取 JSON 响应(项目列表),因此我想在 Android 应用程序中转换为列表。但是当使用 GSON 库时,出现以下异常:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

JSON 响应:

{
"d": [
{
"Id":1,
"Name":"Name1",
"Email":"name1@gmail.com"
},
{
"Id":2,
"Name":"Name2",
"Email":"name2@gmail.com"
}
]
}

Android GSON 代码:

Gson gson = new Gson();
Type listType = new TypeToken<List<User>>(){}.getType();
List<User> users = (List<User>) gson.fromJson(response, listType);

据我了解,JSON 返回一个项目列表,我也在尝试解析一个项目列表,所以我不明白这个问题。

提前致谢

最佳答案

您的 JSON 是 { ... },所以不是列表,但 d 是一个列表。

这完全未经测试,但你应该这样做:

class Foo {
List<User> d;
}

Gson gson = new Gson();
Foo foo = gson.fromJson(response, Foo.class);
List<User> users = foo.d;

关于java - GSON异常: Expected BEGIN_ARRAY but was BEGIN_OBJECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078364/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com