Как я могу получить один объект из запроса с помощью Retrofit 2? - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу получить пользователя как JSONObject из JSONArray.У него есть электронная почта как уникальное значение в базе данных.

Если я позвоню так:

@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 и при вызове он не будет работать.Я ищу какой-то метод, как FirstOrDefault () из .NET Core 2 в C # или что-то подобное.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...