Конвертировать 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>