如何使用Retrofit 2从查询中获取一个对象?

时间:2018-09-26 13:04:34

标签: android json retrofit2

我想从JSONArray获取一个用户作为JSONObject。他将电子邮件作为数据库中的独特价值。

如果我打这样的电话:

@GET("users")
Call<List<User>> getUser(@Query("email") String email);

我必须这样接收数据:

call.enqueue(new Callback<List<User>>() {
    @Override
    public void onResponse(@NonNull Call<List<User>> call,
                           @NonNull Response<List<User>> response) {
        List<User> users_list = response.body();

        if (users_list != null) {
               User user = users_list.get(0);
            }
        }

        @Override
        public void onFailure(@NonNull Call<List<User>> call, @NonNull Throwable t) {

        }
    });

因为我的通话返回的只是一个元素的列表。还有其他方法可以直接获取对象,而不是将其放在列表中吗?

我得到的答复是:

[
    {
        "id": 17,
        "email": "myemail@gmail.com",
        ...
    }
]

我只想得到:

{
    "id": 17,
    "email": "myemail@gmail.com",
    ...
}

如果我替换

List<User> with User

在GET方法中,在调用中将不起作用。我正在寻找某种方法,例如C#中的.NET Core 2中的FirstOrDefault()或类似方法。谢谢!

0 个答案:

没有答案