В классе Groovy JsonSlurper
отсутствует десериализация для функции POJO.Однако вы можете преобразовать список LazyMap
записей в список Employee
объектов.Я не знаю, как именно выглядит ваш Employee
класс, но давайте предположим, что он имеет только эти два поля, и есть один конструктор, который принимает два параметра - empID
и location
.
File file = new File("src/test/resources/data/emp_test_data.json")
List<Employee> employeeList = slurper.parse(file).collect {
new Employee(it.empID, it.location)
}
В случае, если ваш класс Employee
следует соглашениям POJO (конструктор без параметров по умолчанию, сеттеры / получатели), вы можете сделать что-то вроде этого:
File file = new File("src/test/resources/data/emp_test_data.json")
List<Employee> employeeList = slurper.parse(file).collect {
def emp = new Employee()
emp.empID = it.empID
emp.location = it.location
return emp
}
Или даже извлечь часть преобразования для замыкания всделайте код еще более читабельным:
Closure asEmployee = { Map map ->
def emp = new Employee()
emp.empID = map.empID
emp.location = map.location
return emp
}
File file = new File("src/test/resources/data/emp_test_data.json")
List<Employee> employeeList = slurper.parse(file).collect(asEmployee)
Теперь ваш код Java должен быть удовлетворен правильным статическим типом.