Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Преобразования сложных объектов

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Добрый день,

Есть как мне кажется достаточно распространенная проблема. Есть два системы которые имеют разный формат внутренних данных. Чтобы они могли общаться приходится писать адаптеры (трансформеры, конвертеры, называйте как хотите). Суть в том что писать такие вещи на java, как мне кажется, тяжело и не нужно.

В связи с этим вопрос, может у кого-то были подобные проблемы и он видит решение?

Самое простое что приходит в голову, превратить объект в жсон, быстренько на жс сконвертировать и превратить обратно. Но мне кажется должен быть более вменяемый способ. Спасибо большое за ответы.

upd: спасибо Gabriel Angelos, apache dozer отлично подошел

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В нас на проекті Smooks. Не впевнений що він найкращий, так як він з класу робить XML, а потім назад в POJO.
Ось аналогічне питання з відповідями: stackoverflow.com/...-object-mapping

Есть такая штука Apache Dozer, позволяет мапить почти что угодно во что угодно. Поддерживается спрингом, гибко в настройке, есть на мавен-репозитории. Главное следите чтобы не было конфликтов с существующими зависимости log4j, slf4j.
dozer.sourceforge.net

Для JSON есть Jackson mapper, подшаманьте и все будет ОК.

Есть еще XSLT трансформеры, но то для XML, XSL данных.
Camel хорош, но тяжеловат под такое. Все же он нужен для диспатчеризации, а не для конвертирования форматов.

спасибо большое, это то что нужно

Apache Camel для таких вещей удобно использовать. Extract Transform Load (ETL) Example.

спасибо большое, будем посмотреть

про ETL слышал? Там уже до тебя все расписали и по полочкам разложили.

спасибо за комментарий, ETL это замечательно, может значете что-то такое для java?

не буду ничего рекомендовать. Простой запрос в гугл типа Java ETL даст 2 десятка вариантов. Выбирай что подходит.

Підписатись на коментарі