我正在努力研究如何引用我从调用外部API获得的响应中的字段,该外部API以下面的格式返回响应,该格式看起来像来自MSSQL数据库的XML:
<Depts>
<Dept DeptCode="1" DeptName="Sales">
<Employees>
<Employee EmpCode="1234" EmpRole="Sales" DateUpdated="2017-10-17T10:23:09.950"/>
<Employee EmpCode="56" EmpRole="Supervisor" DateUpdated="2017-09-17T10:23:09.950"/>
</Employees>
</Dept>
<Dept DeptCode="2" DeptName="HR">
<Employees>
<Employee EmpCode="84848" EmpRole="Advisor" DateUpdated="2017-10-17T10:23:09.950"/>
<Employee EmpCode="12" EmpRole="Director" DateUpdated="2016-10-17T10:23:09.950"/>
</Employees>
</Dept>
</Depts>
我需要将它转换为json,如下所示:
{
"Depts": [{
"DeptCode": "1",
"DeptName": "Sales",
"Employees": [{
"EmpCode": "1234",
"EmpRole": "Sales",
"DateUpdated": "2017-10-17T10:23:09.950"
},
{
"EmpCode": "56",
"EmpRole": "Supervisor",
"DateUpdated": "2017-09-17T10:23:09.950"
}
]
},
{
"DeptCode": "2",
"DeptName": "HR",
"Employees": [{
"EmpCode": "84848",
"EmpRole": "Advisor",
"DateUpdated": "2017-10-17T10:23:09.950"
},
{
"EmpCode": "12",
"EmpRole": "Director",
"DateUpdated": "2016-10-17T10:23:09.950"
}
]
}
]
}
如何使用Anypoint Studio 6.2和Mule 3.8.3中的转换消息组件在Dataweave中执行此操作?
由于
答案 0 :(得分:0)
如果你在有效负载中提取并获取XML值,那么这里是获得预期结果所需的数据编码:
%dw 1.0
%output application/json
---
{
Depts:payload.Depts map {
DeptCode:$.@DeptCode,
DeptName: $.@DeptName,
Employees: $.Employees map {
EmpCode: $.@EmpCode,
EmpRole: $.@EmpRole,
DateUpdated: $.@DateUpdated
}
}
}