Джексон может десериализовать json для следующего класса в 2.6.5, но терпит неудачу в 2.8.8.
Модель:
public static class Parent {
public long id;
public List<Child> children;
}
@RequiredArgsConstructor
public static class Child {
public long childId;
@NonNull
@JsonIgnore
public Parent parent;
public Child() { }
}
JSON:
{
"id": 1,
"children": [
{
"childId": 2
}
]
}
Исключение составляют:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "childId" (class Parent), not marked as ignorable (2 known properties: "children", "id"])
Я обнаружил, что конструктор Child, созданный lombok, вызывает эту ошибку. Когда я избавляюсь от аннотации ломбок или создаю конструктор вручную, это перестает происходить. В любом случае он должен использовать конструктор Child () без аргументов. Что вызывает эту проблему?