Как получить объект json с помощью библиотеки retrofit

Это мои данные json

{
      "RiderProfile": {
        "ID": 2,
        "Name": "aka",
        "Email": "ak@ak.com"
      }
    }

Вот как я ставлю параметры

@GET("/api/rider/GetLogin?Email=ak@ak.com&Password=123 ")
    public Call GetLogin(
            @Path("Email") String Email,
            @Path("Password") String Password);

Получение данных json с помощью библиотеки Retrofit

     @Override
        public void onResponse(Call call, Response response) {
            String respoStr = response.body().toString();
            Gson gson = new Gson();
            DataHandler.webData = gson.fromJson(respoStr,WebData.class);
            String name = DataHandler.webData.Rider.getEmail();
            Toast.makeText(MainActivity.this, "Welcome"+name, Toast.LENGTH_SHORT).show();
        }

а какой у тебя вопрос? Есть ли проблема с вашим кодом, с которой вам нужна помощь? Непонятно, в чем ваша проблема.

ADyson 31.10.2018 14:28

@ADyson Спасибо за ответ, я получаю объект json, но не могу получить ответ, пожалуйста, загляните в мой код и скажите, в порядке ли этот код или что-то не так.

Abdul Basit Rishi 31.10.2018 14:31

«не могу» что именно означает? Какую отладку вы сделали? Дайте нам описание проблемы, включая любые HTTP-статусы, сообщения об ошибках, неожиданные значения данных, неожиданное поведение кода и т. д. А затем сообщите нам, что именно вы ожидали вместо этого.

ADyson 31.10.2018 14:33
0
3
94
1

Ответы 1

Поскольку вопрос кажется мне непонятным, я думаю, вам нужен ответ JSON в java-объекте. Для этого создайте модель (класс POJO) для вашего ответа JSON. Для этого пригодится следующая ссылка: http://www.jsonschema2pojo.org/

Затем используйте класс модели в качестве универсального для класса Вызов

Например,

@GET("/api/rider/GetLogin?Email=ak@ak.com&Password=123 ")
    public Call<YOUR_MODEL> GetLogin(
            @Path("Email") String Email,
            @Path("Password") String Password);

И вы можете преобразовать объект Ответ в методе onResponse() в свой класс POJO. Делая это, вы можете получать значения JSON, обращаясь к геттерам и сеттерам вашего класса POJO.

спасибо sumeet за ответ. Мой вопрос в том, как преобразовать объект JSON в метод onResponse (),

Abdul Basit Rishi 07.11.2018 11:49

Я могу легко преобразовать эти данные JSON {{"ID": 2, "Name": "aka", "Email": "ak@ak.com", "Mobile": "1212121212",}}, но у меня возникают проблемы чтобы передать эти данные JSON {"RiderProfile": {"ID": 2, "Name": "aka", "Email": "ak@ak.com"}}

Abdul Basit Rishi 07.11.2018 11:50

Надеюсь, проблема решена. Если это не так: Ссылаясь на ваш предыдущий комментарий, структуры обоих ответов различаются. Убедитесь, что JSON, который вы хотите использовать, отнесен к уважаемому классу POJO. Я имею в виду, что классы POJO для обеих структур будут разными, используйте соответствующий при кастинге.

Sumeet Rukeja 12.11.2018 13:51

Другие вопросы по теме