Конвертировать XML в JSON, используя пользовательский трансформатор MULE
-
21-12-2019 - |
Вопрос
Привет, я работаю с 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;
}
}
Решение
Посмотрите на существующий трансформатор: https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/Модуль / XML / Transformer / xmlprettyprinter.java
- .
- Посмотрите, как в конструкторе принимаются типы исходных источников, как с:
registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
- Посмотрите, как в методе
doTransform
общий генеракодицетагCode преобразуется.
Другие советы
Вы можете использовать либо XML для JSON Transformer из палитра мул к потокам мула.
<json:xml-to-json-transformer doc:name="XML to JSON"/>
.
или
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload]]></dw:set-payload>
</dw:transform-message>
. Настройка выхода данных Dataweave поскольку приложение / JSON делает автоматически.Однако, когда вы делаете JSON до XML, вам, возможно, придется убедиться, что JSON может быть преобразован в форму XML с элементом корневого элемента и элементами элементов внутри.