Преобразование 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; } }


person Utsav    schedule 03.06.2014    source источник


Ответы (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.
person David Dossot    schedule 03.06.2014
comment
Спасибо, у меня есть решение и идея, как сделать его работоспособным. - person Utsav; 03.06.2014

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

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

OR

Использовать преобразование DataWeave:

 <dw:transform-message doc:name="Transform Message">
             <dw:set-payload><![CDATA[%dw 1.0
 %output application/json
 ---
 payload]]></dw:set-payload>
         </dw:transform-message>
person Rajnish Kumar Jha    schedule 31.01.2018

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

person Srinivas    schedule 24.02.2018