Pregunta

Hola, estoy trabajando con Mule Studio y quiero crear un transformador personalizado que convierta XML a Json usando la biblioteca Gson de Google.Entonces, en este caso, tengo que agregar un componente Java Transformer y tengo que escribir un código personalizado para eso.Pero el problema al que me enfrento es que estoy anulando el método que acepta el parámetro de entrada como objeto, esa es la única forma que creo o es cualquier otra forma que acepte el parámetro de entrada como una cadena XMl.Comparta un código para que funcione.

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

¿Fue útil?

Solución

Eche un vistazo a un transformador existente: https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/module/xml/transformer/XmlPrettyPrinter.java

  • Vea cómo en el constructor se registran los tipos de fuente aceptados, como con: registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
  • Mira como en el doTransform método el genérico Object src Está convertido.

Otros consejos

Puede usar XML al transformador JSON de la paleta de mula a los flujos de mula.

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

o

use DataAweave 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>

Configuración de la salida de DataWeave como aplicación / JSON hace automáticamente.Sin embargo, cuando realiza JSON a XML, es posible que tenga que asegurarse de que el JSON pueda convertirse en Formulario XML con elemento raíz y elementos miembros dentro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top