Конвертировать XML в JSON, используя Mule Custom Transformer

Привет! Я работаю с Mule Studio и хочу создать собственный трансформер, который будет конвертировать XML в Json с помощью библиотеки Google Gson. Так что в этом случае мне нужно добавить компонент Java Transformer, и мне нужно написать собственный код для этого. Но проблема, с которой я сталкиваюсь, заключается в том, что я переопределяю метод, который принимает входной параметр как объект, который является единственным способом, который я считаю, или его любой другой способ, который будет принимать входной параметр как строку XMl. Пожалуйста, поделитесь кодом, чтобы сделать его работоспособным.

public class Transfomer extends AbstractTransformer { protected Object doTransform(Object src, String enc) throws TransformerException { // TODO Auto-generated method stub
return null; } }

3 ответа

Решение

Взгляните на существующий преобразователь: https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/module/xml/transformer/XmlPrettyPrinter.java

  • Посмотрите, как в конструкторе регистрируются принятые типы источников, например: registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
  • Посмотрите, как в doTransform метод общий Object src конвертируется

Установка вывода Dataweave как application/json выполняет автоматически. Однако, когда вы делаете JSON в XML, вам, возможно, придется убедиться, что JSON можно преобразовать в форму XML с корневым элементом и элементами-членами внутри.

Вы можете использовать преобразователь XML в JSON из палитры Mule в потоки Mule.

 <json:xml-to-json-transformer doc:name="XML to JSON"/>

ИЛИ ЖЕ

Использовать DataWeave Transformation:

 <dw:transform-message doc:name="Transform Message">
             <dw:set-payload><![CDATA[%dw 1.0
 %output application/json
 ---
 payload]]></dw:set-payload>
         </dw:transform-message>
Другие вопросы по тегам