gpt4 book ai didi

java - 从 JSON 到没有表名的对象

转载 作者:行者123 更新时间:2023-11-29 18:52:07 26 4
gpt4 key购买 nike

我正在尝试非常简单地将 JSON 解析为对象(使用 GSON)

我的 JSON:

[{"username":"admin","password":"admin","name":"admin","email":"admin@admin.com"},{"username":"mark20","password":"mark123","name":"mark","email":"mark@steew.com"}]

是否有 2 个用户,所以我创建了 2 个类,带有用户列表的用户和用户:

public class Users {

ArrayList<User> users;

Users(ArrayList<User> users){
this.users = users;
}

}

.

public class User {

String userame;
String password;
String name;
String email;

}

这是我的解析代码:

public void onResponse(Call call, Response response) throws IOException {
String body = response.body().string();
Gson gson = new GsonBuilder().create();
Users users = gson.fromJson(body, Users.class);
}

当然在变量 body 中我得到了正确的 JSON,但在最后一个 channel 中我得到了:

JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY

这里有什么问题吗?如何解决?

最佳答案

您的 json 是 User 的数组不是 wrapper Users数组 User .

像这样读取你的 json:

User[] users = gson.fromJson(body, User[].class);

如果你想要一个 ArrayList<> :

List<User> userList = Arrays.asList(users);

另一种方法是使用 TypeToken :

Type listType = new TypeToken<ArrayList<User>>(){}.getType();
List<User> userList = gson.fromJson(body, listType);

关于java - 从 JSON 到没有表名的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50773179/

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