Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JSON到不带表名的对象_Java_Android_Json_Gson - Fatal编程技术网

Java 从JSON到不带表名的对象

Java 从JSON到不带表名的对象,java,android,json,gson,Java,Android,Json,Gson,我试图非常简单地将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 {

我试图非常简单地将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 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);
        }
当然,在variable
body
中,我得到了正确的JSON,但在最后一条通道中,我得到了:

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

这里有什么问题?如何修复它?

您的json是一个
User
数组,而不是一个
Users
数组
User
的包装器

如下所示阅读您的json:

User[] users = gson.fromJson(body, User[].class);
如果需要
阵列列表


如果我正确地阅读了其他地方阅读的内容,请尝试:

public void onResponse(Call call, Response response) throws IOException {
            String body = response.body().string();
            Gson gson = new GsonBuilder().create();
            User[] users = gson.fromJson(body, User[].class);
        }
List<User> userList = Arrays.asList(users);
Type listType = new TypeToken<ArrayList<User>>(){}.getType();
List<User> userList = gson.fromJson(body, listType);
public void onResponse(Call call, Response response) throws IOException {
            String body = response.body().string();
            Gson gson = new GsonBuilder().create();
            User[] users = gson.fromJson(body, User[].class);
        }