Когда я делаю вызов API GET на свой веб-сервер, я получаю ответ ниже. Он возвращает список значений. Я хочу пройти каждое значение и преобразовать его в объект Java "Студент"
[{
"name": "xyz",
"id": "1234"
},
{
"name": "abc",
"id": "1254"
}]
Как преобразовать каждое значение в списке в объект Java, который имеет два поля «имя» и «идентификатор».
Например:-
class Student{
String name;
String id;
}
Я хочу использовать jackson ObjectMapper. Я не понимаю, как преобразовать список в объект Java, а затем каждое значение в класс Student.
objectMapper.readValue(jsonString, new TypeReference<List<Student>>(){}) должен делать
Спасибо @ernest_k. Это решение сработало.




Вы можете использовать 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());
}
Возможный дубликат Как преобразовать следующую строку json в объект java?