У меня есть объекты в json с ключами «dynamici c», в частности, ключи, которые содержатся в массивах объекта. Я должен был десериализовать массив в живые объекты. Формат данных json не может быть изменен, так как он поступает из устаревшей системы. Я пишу слой перевода.
[
{
"name": "thing",
"animals": ["tiger","wolf"],
"shapes": ["square"],
"tiger": {
"diet": "meat",
"cuteness": "medium"
},
"wolf": {
"diet": "any",
"cuteness": "high"
},
"square": {
"roundness": "medium",
"stackable": true
}
},
{
"name": "other thing",
"animals": ["llama"],
"shapes": ["circle", "triangle"],
"llama": {
"diet": "veg",
"cuteness": "high"
},
"circle": {
"roundness": "high",
"stackable": false
},
"triangle": {
"roundness": "low",
"stackable": false
}
}
]
Я хочу превратить его в java объекты
@Data
public class Thinger {
private String name;
private List<Animal> animals;
private List<Shape> shapes;
}
@Data
public class Animal {
private String diet;
private String cuteness;
}
@Data
public class Shape {
private String roundness;
private bool stackable;
}
Примечание: @Data - это аннотация Lombok, добавляющая конструкторы, геттеры сеттеры ... это не источник проблемы; Я использую Lombok с Джексоном в течение нескольких лет
Я застрял в написании собственного десериализатора? Я не могу найти аннотацию для «это набор ключей для свойств объектов в родительском узле».