質問

こんにちは、私は Mule Studio を使用しています。Google Gson ライブラリを使用して XML を Json に変換するカスタム トランスフォーマを作成したいと考えています。したがって、この場合、Java Transformer コンポーネントを追加する必要があり、そのためのカスタム コードを作成する必要があります。しかし、私が直面している問題は、入力パラメータをオブジェクトとして受け入れるメソッドをオーバーライドしていることです。それが私が考える唯一の方法であるか、入力パラメータをXML文字列として受け入れる他の方法です。機能させるためにコードを共有してください。

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

役に立ちましたか?

解決

既存の変圧器を見てみましょう。 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 変換されます。

他のヒント

Mule パレットから Mule フローへの XML から JSON へのトランスフォーマを使用できます。

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

または

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>

Dataweave 出力を application/json として設定すると、これが自動的に行われます。ただし、JSON を XML に変換する場合は、JSON がルート要素とメンバー要素を含む XML 形式に変換できることを確認する必要がある場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top