Mule Dataweave:如何将HTTP响应(JSON)动态映射到XML输出

时间:2019-01-30 08:05:57

标签: mule dataweave mule-esb

我正在构建一个应用程序,在该应用程序中,我必须点击一个宁静的界面,并将响应的特定部分传递给UI。

响应模型非常庞大,包含很多字段(字符串,对象数组,对象,数字数据类型),因此使用手动转换会很麻烦。

是否可以将响应的部分映射到变量并将其直接发送到UI。

我尝试过

 %dw 2.0
%output application/xml

%var UserAcct= payload.UserResponse.UserDetailsResp.UserAccounts

---
{
  User: {
     "UserAccount": {   
        Account:  UserAcct
     }
   }
}

这不起作用,因为有效负载在响应中具有列表,对象数组等,并且映射到变量会引发错误。是否可以直接在dataweave中发送payload.UserResponse.UserDetailsResp.UserAccounts节?请帮忙。

1 个答案:

答案 0 :(得分:0)

如果添加输入有效负载,错误和XML输出,则将更加有用。

下面的代码只是假设您的情况而已。您可以尝试一下:

 %dw 2.0
 output application/xml
 ---
 {
   User: {
     "UserAccount": {   
        (payload.UserResponse.UserDetailsResp.UserAccounts map {
            Address:{
              <XMLFieldName>: $.<respectiveJSONFieldToMap>
              ....
            } 
        })
     }
   }
 }