سؤال

مرحبًا، أنا أعمل مع Mule Studio وأريد إنشاء محول مخصص يقوم بتحويل XML إلى Json باستخدام مكتبة Google Gson.لذلك في هذه الحالة لا بد لي من إضافة مكون 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 محول.

نصائح أخرى

يمكنك استخدام محول XML إلى JSON من لوحة Mule إلى تدفقات Mule.

 <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 كتطبيق/json يقوم بذلك تلقائيًا.ومع ذلك، عندما تقوم بتحويل JSON إلى XML، قد يتعين عليك التأكد من إمكانية تحويل JSON إلى نموذج XML مع وجود العنصر الجذري والعناصر الأعضاء بداخله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top