使用Mule Custom Transformer将XML转换为JSON

时间:2014-06-03 14:19:07

标签: mule mule-studio mule-el mule-module-jpa

您好我正在使用Mule Studio,我想创建一个Custom Transformer,它将使用Google Gson Library将XML转换为Json。所以在这种情况下我必须添加一个Java Transformer组件,我必须为此编写一个自定义代码。但我面临的问题是我重写了接受Input参数作为Object的方法,这是我认为的唯一方式,或者是将接受输入参数作为XMl字符串的任何其他方式。请分享一些代码以使其可行。

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

3 个答案:

答案 0 :(得分:0)

查看现有的变压器:https://github.com/mulesoft/mule/blob/mule-3.x/modules/xml/src/main/java/org/mule/module/xml/transformer/XmlPrettyPrinter.java

  • 在构造函数中查看已注册的源类型是如何注册的,例如:registerSourceType(DataTypeFactory.create(org.dom4j.Document.class));
  • 了解doTransform方法如何转换通用Object src

答案 1 :(得分:0)

您可以使用从Mule调色板到Mule流的XML到JSON转换器。

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

OR

使用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>

答案 2 :(得分:0)

设置Dataweave输出为application / json自动执行。但是,当您对XML执行JSON时,您可能必须确保可以将JSON转换为包含根元素和成员元素的XML表单。