Question

Bonjour, je travaille avec Mule Studio et je souhaite créer un transformateur personnalisé qui convertira XML en Json à l'aide de la bibliothèque Google Gson.Donc, dans ce cas, je dois ajouter un composant Java Transformer et je dois écrire un code personnalisé pour cela.Mais le problème auquel je suis confronté est que je remplace la méthode qui accepte le paramètre d'entrée en tant qu'objet, c'est la seule façon, à mon avis, ou est-ce une autre méthode qui acceptera le paramètre d'entrée en tant que chaîne XML.Veuillez partager un code pour le rendre fonctionnel.

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

Était-ce utile?

La solution

Jetez un œil à un transformateur existant : https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/module/xml/transformer/XmlPrettyPrinter.java

  • Voyez comment dans le constructeur les types de sources acceptés sont enregistrés, comme avec : registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
  • Voyez comment dans le doTransform méthode le générique Object src est converti.

Autres conseils

Vous pouvez utiliser le transformateur XML vers JSON de la palette Mule vers les flux Mule.

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

OU

Utilisez la transformation 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>

La définition de la sortie Dataweave comme application/json le fait automatiquement.Cependant, lorsque vous effectuez du JSON en XML, vous devrez peut-être vous assurer que le JSON peut être converti en formulaire XML avec l'élément racine et les éléments membres à l'intérieur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top