Mule 使用dataweave sum函数将json转换为xml
我的输入如下:-Mule 使用dataweave sum函数将json转换为xml,mule,dataweave,Mule,Dataweave,我的输入如下:- { "Studentvalue": [ { "StudentDetails": { "valueId": "default", "reason": "default", "type": "high", "Schoolbudget": [ { "Id": "100", "Age": "23" },
{
"Studentvalue": [
{
"StudentDetails": {
"valueId": "default",
"reason": "default",
"type": "high",
"Schoolbudget": [
{
"Id": "100",
"Age": "23"
},
{
"Id": "101",
"Age": "24"
},
{
"Id": "102",
"Age": "25"
}
],
"isApplicable": "boolean",
"isNotified": "boolean"
}
}
]
}
输出xml为:
<schoolmemo>
<active>yes<active>
<schooltype>Primary<schooltype>
<validity>?<validity>
</schoolmemo>
对
主要的,重要的
?
我有一个条件,如果json中“AGE”字段的总和大于100,则xml中的validity标记的值为“yes”,否则为“no”
你们能帮助我如何在dataweave中使用sum函数来表示有效性字段吗?重要的一点是,我得到的是json中“age”字段的数组
干杯,
b解决方案以下是您正在寻找的数据编织:
%dw 1.0
%output application/xml
%var agesCombined = sum payload.StudentDetails.StudentType.Age
---
schoolmemo: {
active: "yes",
schooltype: "Primary",
validity: "yes" when agesCombined < 100 otherwise "no"
}
%dw 1.0
%输出应用程序/xml
%var agesCombined=sum payload.StudentDetails.StudentType.Age
---
学校备忘录:{
活动:“是”,
学校类型:“小学”,
有效期:年龄小于100岁时为“是”,否则为“否”
}
以下是您正在寻找的dataweave:
%dw 1.0
%output application/xml
%var agesCombined = sum payload.StudentDetails.StudentType.Age
---
schoolmemo: {
active: "yes",
schooltype: "Primary",
validity: "yes" when agesCombined < 100 otherwise "no"
}
%dw 1.0
%输出应用程序/xml
%var agesCombined=sum payload.StudentDetails.StudentType.Age
---
学校备忘录:{
活动:“是”,
学校类型:“小学”,
有效期:年龄小于100岁时为“是”,否则为“否”
}
尝试此dataweave脚本
%dw 1.0
%output application/xml
%var sumOfAge = sum payload.Studentvalue.StudentDetails.Schoolbudget..Age
---
schoolmemo: {
active: "yes",
schooltype: "Primary",
validity: "yes" when sumOfAge < 100 otherwise "no"
}
%dw 1.0
%输出应用程序/xml
%var sumOfAge=总有效载荷.Studentvalue.StudentDetails.Schoolbudget..Age
---
学校备忘录:{
活动:“是”,
学校类型:“小学”,
有效期:当总和小于100时为“是”,否则为“否”
}
payload.Studentvalue.StudentDetails.Schoolbudget..Age
将获取ages数组。尝试此dataweave脚本
%dw 1.0
%output application/xml
%var sumOfAge = sum payload.Studentvalue.StudentDetails.Schoolbudget..Age
---
schoolmemo: {
active: "yes",
schooltype: "Primary",
validity: "yes" when sumOfAge < 100 otherwise "no"
}
%dw 1.0
%输出应用程序/xml
%var sumOfAge=总有效载荷.Studentvalue.StudentDetails.Schoolbudget..Age
---
学校备忘录:{
活动:“是”,
学校类型:“小学”,
有效期:当总和小于100时为“是”,否则为“否”
}
payload.Studentvalue.StudentDetails.Schoolbudget..Age将获取ages数组。此处..%var agescombined将不起作用,因为我正在获取年龄值一个数组,我想在此组合所有年龄:-23+24+25请告诉我如何将数组中的所有年龄相加,而不是应用条件YevGeny的答案是正确的,请尝试一下。payload.StudentDetails.StudentType.Age将生成一个数组。您可以将其写为payload.StudentDetails.*StudentType.Age,这使它更清晰,但结果是相同的。不,它不起作用。它给出了一个错误“null to array”,我已经用准确的字段更新了我的json,您现在能帮我吗…很抱歉,还有一个更新:-(…我必须对年龄的23+24+25进行求和并进行验证。此处…%var agescombined将不起作用,因为我正在获取年龄值一个数组,我想在此处组合所有年龄:-23+24+25请告诉我如何对数组中的所有年龄求和,而不是应用条件YevGeny的答案是正确的,请尝试一下。有效载荷。StudentDetails.StudentType.Age生成一个数组。您可以将其作为有效负载写入。StudentDetails.*StudentType.Age,这使它更清晰,但结果是相同的。不,它不起作用。它给出了一个错误“null to array”,我已经用准确的字段更新了我的json。您现在可以帮助我吗?抱歉,有一个更新:-(……我必须对年龄23+24+25进行求和,并进行验证。