Предыстория: я работаю над интеграцией в API "rest", где все json-тела ответа - это два димерсионных массива. Массивы представляют собой результирующий набор из SQL-запроса, который должен быть отображен на некоторый структурированный объект с полями, вложенными отношениями и т. Д., Как и любой ORM.
Пример 1: Пример тела ответа (список пар «имя-значение», где все массивы значений имеют одинаковую размерность):
[
{
name: "id",
value: ["1", "1"]
},
{
name: "rel1",
value: [5, 6]
},
{
name: "rel2",
value: [7, 8]
}
]
Пример 2. «Правильным» (или предпочтительным) представлением вышеупомянутого будет:
{
id: "1"
relation: [
{
rel1: 5,
rel2: 7
},
{
rel1: 6,
rel2: 8
}
]
}
Я ищу способ сопоставить первый пример с объектами Java, как во втором примере. Я думал, что части hibernate можно использовать для аннотирования pojo и каким-то образом использовать таблицу json вместо результатов запросов sql для сопоставления. Мне не удалось понять, возможно ли это. Кто-нибудь, кто знает, можно ли использовать детали в спящем режиме? то есть сопоставить List<Map<String, Object>>
(строки) с аннотированным Java-объектом.
Я рассмотрел другие подходы, использующие модель-маппер и бульдозер, но, похоже, они обрабатывают более простые отображения (в основном из bean-компонентов?) И, насколько я видел, требуют большой настройки.
Причина, по которой мы структурируем данные таким образом, связана с ограничениями третьей стороны, которые находятся вне моего контроля.
Есть идеи или предложения?
Спасибо!