Converti XML in JSON usando il trasformatore personalizzato Mule
-
21-12-2019 - |
Domanda
Ciao Sto lavorando con Mule Studio e voglio creare un trasformatore personalizzato che convertirà XML in JSON usando Google GSL Library.Quindi, in questo caso, devo aggiungere un componente del trasformatore Java e devo scrivere un codice personalizzato per quello.Ma il problema che sto affrontando è che sto prendendo il sopravvento il metodo che accetta il parametro di input come oggetto che è l'unico modo in cui penso o è il loro altro modo che accetterà il parametro di input come una stringa XML.Si prega di condividere un codice per renderlo praticabile.
public class Transfomer extends AbstractTransformer
{
protected Object doTransform(Object src, String enc) throws TransformerException {
// TODO Auto-generated method stub
return null;
}
}
Soluzione
Dai un'occhiata a un trasformatore esistente: https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/Mule/Modulo / xml / trasformatore / xmlprettyprinter.java
- .
- Vedi Come nel costruttore I tipi di origine accettati sono registrati, come con:
registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
- Vedere come nel metodo
doTransform
il GenericoObject src
viene convertito.
Altri suggerimenti
È possibile utilizzare XML al trasformatore JSON dalla tavolozza del mulo ai flussi della mulo.
<json:xml-to-json-transformer doc:name="XML to JSON"/>
.
o
Utilizzare la trasformazione del 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>
. Impostazione dell'output di DataWeave come applicazione / JSON viene automaticamente.Tuttavia, quando si esegue JSON a XML potrebbe essere necessario assicurarsi che il JSON possa essere convertito in forma XML con elemento root e elementi membri all'interno.