在数据中使用解析模板转换器与数组

问题描述:

我是Mulesoft的新手,我正在寻求通过解析模板转换器将Json对象转换为XML对象。直截了当的,但是,当Json对象有一个元素数量不确定的数组时,什么是合适的方法?在数据中使用解析模板转换器与数组

举例来说,如果我有一个JSON对象,看起来像

{ “名”: “玛土撒拉”, “爱好:[ “名”: “吉他”, “名”: “烹饪”, “名”: “成才”, ... ]}

那里爱好的数量是在运行时
未知的,我的XML模板的样子:

<Person> 
<Name>#[payload.name]</Name> 
<Hobbies> 
    <!- What should this bit look like --> 
</Hobbies> 

所以 - 我的问题是我应该如何处理的开放式JSON数组到XML的转换?

请注意,我们目前正在探索社区版,因此无法访问通过企业版提供的数据映射功能。

感谢

个人,改造一个JSON对象到XML对象,通过使用社区版,我会用:JSON到对象对象到XML变压器。

但是,使用解析模板我将利用Mule表达式语言(MEL)。例如:

<Person> 
<Name>#[json:name]</Name> 
<Hobbies> 
#[ 
    org.json.JSONObject jsonObject = new org.json.JSONObject(payload.toString()); 
    org.json.JSONArray jsonArray = jsonObject.get("hobbies"); 
    String hobbies = ""; 
    for(int i = 0; i < jsonArray.length(); i++) { 
     hobbies += "<Name>" + jsonArray.get(i).getString("name") + "</Name>"; 
    } 
    hobbies; 
] 
</Hobbies> 
</Person> 
+0

嗨@Sulthony感谢您的答复。我们不能直接使用默认转换器,因为两者之间的模式不一样。你的解决方案可能工作,我宁愿不必做任何字符串连接来建立节点。是否有可能声明一个迭代变量并在循环中调用它?此外,在这个阶段的有效载荷类型是LinkedHashMap,所以我想知道这是否会改变您提出的解决方案 –

+0

您可以用* XML Parser *替换* String concatenation *。通过使用MEL,您可以根据您的需要编写转换代码。我的答案只是为了展示如何使用它的想法。 –