Я пытаюсь десериализовать JSON в POJO с помощью @JsonRootName
для root элемента EmployeeDTO
. Я получаю jackson.databind.exc.MismatchedInputException
. Обратите внимание, что я использую аннотации Lombok при загрузке Spring.
Уровень обслуживания:
List<EmployeeDetails> employeeList = emp.getEmployees();
String jsonEmployee = mapper.writeValueAsString(employeeList);
List<EmployeeDTO> correctList = mapper.readValue(jsonEmployee,new TypeReference<List<EmployeeDTO>>() {}); // error line
EmployeeDTO: (Обратите внимание, что я использую Lombok)
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonRootName("EmployeeDTO")
public class EmployeeDTO {
private long employeeId;
private String managerId;
private final List<EmployeeDTO> getEmployees;
@JsonProperty("EmployeeDTO")
public List<EmployeeDTO> getEmployees() {
return getEmployees;
}
}
Журнал ошибок:
Unhandled Exception caughtcom.fasterxml.jackson.databind.exc.MismatchedInputException: Root name 'ArrayList' does not match expected ('List') for type [collection type; class java.util.List contains [simple type, class com.ayman.dto.EmployeeDTO