在数据中使用带有数组的Parse Template转换器

时间:2016-06-14 05:06:21

标签: mule

我是Mulesoft的新手,我希望通过Parse Template转换器将Json对象转换为XML对象。然而,直接向前,当Json对象具有未确定数量的元素的数组时,适当的方法是什么?

例如,如果我有一个看起来像

的JSON对象
  

{" name" :" Methusela",    "爱好:[      "姓名":"吉他",      "姓名":"烹饪",      " name":" someting",   ...   ]}

其中业余爱好的数量在运行时未知 我的xml模板看起来像:

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

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

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

谢谢

2 个答案:

答案 0 :(得分:0)

就个人而言,要将Json对象转换为XML对象,使用社区版,我将使用: JSON to Object Object to XML 转换器。

但是,要使用 Parse Template 进行转换,我将使用Mule Expression Language(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>

答案 1 :(得分:0)

在解析模板中,您可以使用简单的javascript循环:

for(i=0;i<#[payload.Hobbies].length;i++){
document.getElementById('Id').innerHtml += #[payload.Hobbies][i] 
}