2016-11-07 3 views
0

Я столкнулся с проблемой между двумя приложениями, которые мы используем в моей компании. CRM под названием Infonova и мобильное приложение.Внешний фасад для отображения xml на json

Два приложения имеют свой собственный API, один дает ответы в формате xml, а другой в Json.

Решение, которое я собираюсь реализовать, заключается в создании приложения, которое будет API-интерфейсом фасада (gateway). Это приложение будет вызывать API-интерфейс url для первого приложения и получит ответ xml, и я собираюсь отобразить это решение в формате json и вернуть его.

Поскольку атрибуты между xml и json не совпадают, я хочу знать, есть ли решение для сопоставления двух объектов, которые будут представлять мои ответы.

Спасибо заранее,

+0

Вы можете показать свой входной XML и ваш выход JSON? –

ответ

1

Вы можете определить XML unmarshaller с пружиной, вызовите сервис, который возвращает XML, распаковать ответ на этот боб. И тогда вы можете вернуть этот компонент в ответ от контроллера, аннотированного @Produces("application/json").

Итак, подведем итоги. У вас есть контроллер, который создает json, bean, содержащий имена полей, которые вы хотите в json, и настраиваемый unmarshaller для xml для заполнения этих полей (пользовательский, поскольку имена полей между json и xml не совпадают).

+0

Спасибо! Это именно то, что я хочу сделать, но у вас есть пример пользовательского unmarshaller. Предположим, что мой bean - это человек с атрибутом String с именем name, с другой стороны, мы используем xml, у которого есть корневой элемент с именем с подэлементом, называемым , для определения имени. Как я могу сопоставить эти два особенно, что пример, который я нашел в документации, нуждается в компоненте во время процесса unmarshalling? – Habchi

+0

say для jaxb см. Этот ответ http://stackoverflow.com/questions/15100680/jaxb-rename-attribute, вы комментируете свои бобы и предоставляете имена xml в аннотациях – borowis

+0

Спасибо, сэр! :) – Habchi

Смежные вопросы