Converter o XML para JSON usando Mula Personalizado Transformador
-
21-12-2019 - |
Pergunta
Oi eu estou trabalhando com Mula Studio e eu quero criar um Personalizado Transformador que irá converter o XML para Json usando o Google Gson Biblioteca.Então, nesse caso, eu tenho que adicionar um Java Transformador de componente e tenho que escrever um código personalizado para isso.Mas o problema que estou enfrentando é que eu estou substituindo o método que aceita o parâmetro de Entrada como Objeto é a única maneira que eu penso ou é seu de qualquer outra forma que venha a aceitar Parâmetro de Entrada como uma Cadeia de caracteres XMl.Por favor, compartilhe um código para torná-lo viável.
public class Transfomer extends AbstractTransformer
{
protected Object doTransform(Object src, String enc) throws TransformerException {
// TODO Auto-generated method stub
return null;
}
}
Solução
Dê uma olhada em um transformador existente: https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/module/xml/transformer/XmlPrettyPrinter.java
- Veja como no construtor aceito tipos de fonte são registrados, como:
registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
- Veja como no
doTransform
método genéricoObject src
é convertido.
Outras dicas
Você pode usar XML para JSON transformador da Mula paleta a Mula fluxos.
<json:xml-to-json-transformer doc:name="XML to JSON"/>
OU
Use DataWeave Transformação:
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload]]></dw:set-payload>
</dw:transform-message>
Definir saída de dataweave como aplicativo / json faz o automaticamente.No entanto, quando você faz JSON para XML, você pode ter que garantir que o JSON possa ser convertido em formulário XML com elemento raiz e elementos de membro dentro.