Преобразование ответа API, возвращающего список значений, в JavaObject

Когда я делаю вызов API GET на свой веб-сервер, я получаю ответ ниже. Он возвращает список значений. Я хочу пройти каждое значение и преобразовать его в объект Java "Студент"

[{
        "name": "xyz",
        "id": "1234"
    },
    {
        "name": "abc",
        "id": "1254"
}]

Как преобразовать каждое значение в списке в объект Java, который имеет два поля «имя» и «идентификатор».

Например:-

class Student{

        String name;
        String id;

    }

Возможный дубликат Как преобразовать следующую строку json в объект java?

ernest_k 08.09.2018 14:35

Я хочу использовать jackson ObjectMapper. Я не понимаю, как преобразовать список в объект Java, а затем каждое значение в класс Student.

user1 08.09.2018 14:56
objectMapper.readValue(jsonString, new TypeReference<List<Student>>(){}) должен делать
ernest_k 08.09.2018 14:59

Спасибо @ernest_k. Это решение сработало.

user1 08.09.2018 15:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
868
2

Ответы 2

Вы можете использовать Gson. Он анализирует ответ Json на заданный (совместимый) объект Java:

GsonBuilder builder = new GsonBuilder();
jsonObject = builder.create().fromJson(jsonString, jsonObject.class);

class jsonObject {
    ArrayList<Student> students;

    class Student {
        String name;
        String id;
    }
}

jsonString будет вашим ответом API. Поскольку ответ представляет собой список объектов ученика, вам нужно будет обернуть объекты ученика во что-то вроде списка.

добавьте этот код туда, где вы получите ответ Api

//make both string id and name public in your Student class
ArrayList<Student> students;
try{
 Student student=new Student();
 JSONObject jsonObject = new JSONObject(response);//adding all response in JSON
students=new ArrayList<>();
 //the loop will run as many times as the object in the response.In this case loop will run two times
 for(i=0;i<jsonObjest.length;i++){
     JSONObject jsonString = jsonObjest.getJSONObject(i);//here getting all object by index 
     //adding data 
     student.id=jsonString.getString("id");
     student.name=jsonString.getString("name");
     students.add(student);//adding all data in arraylist.Now if you want to diplay this all data by listView...You new need to just pass this "students" ArrayList in your adapter 
 }  

}catch(JSONException e) {
  Log.d("== = ",""Exception::  "+e.getMassege());

}

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