Можем ли мы преобразовать массив map в массив класса сущностей модели [POJO] без зацикливания? - PullRequest
0 голосов
/ 30 июня 2018

Мне нужно преобразовать массив Map в класс модели, который содержит переменную memeber как массив POJO без циклического перебора переменных. Например, следующим образом:

Map<String,String>[] StudentArray= new HashMap[2];

Map<String,String> map1= new HashMap<String,String>();
map1.put("id","1");
map1.put("name","ABC");

Map<String,String> map2= new HashMap<String,String>();
map1.put("id","1");
map1.put("name","DEF");

StudentArray[0]=map1;
StudentArray[1]=map2;

Класс модели:

class Student{

   private String id;
   private String name;
}

class StudentArray{

   Student[] student;
}

Мне нужно преобразовать массив карт в модель POJO для StudentArray.

1 Ответ

0 голосов
/ 03 июля 2018

Потоки в Java 8 помогают в реализации внутренней итерации. Ниже кусок кода будет работать.

List<Student> studentList = Arrays.stream(StudentArray).map(studentMap-> 
getStudentObject(studentMap)).collect(Collectors.toList());

Здесь studentMap будет выполнять итерацию в качестве экземпляра из StudentArray [], а метод ниже преобразует каждый из этих экземпляров в класс Student POJO, который собирается в List studentList.

Используйте com.fasterxml.jackson.core: jackson-databind: 2.7.3 jar для использования метода convertValue в ObjectMapper:

private Student getStudentObject(Map studentMap){
    ObjectMapper m = new ObjectMapper(); // // jackson's objectmapper
    return m.convertValue(studentMap, Student.class);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...