【发布时间】:2021-06-11 07:57:40
【问题描述】:
我需要使用从不同 API 收到的响应创建一个嵌套数组。我有这个包含所有数据的平面数组。什么是创建嵌套数组的最佳方法,其中子项根据其结果状态嵌套到其父项。
输入 JSON 平面数组如下:
[
{
"studentNumber": "FP5500",
"studentName": "John Doe",
"Subject": "Arts",
"grade": "B",
"result": "Pass"
},{
"studentNumber": "FP5501",
"studentName": "Jane Doe",
"Subject": "Arts",
"grade": "B",
"result": "Pass"
},{
"studentNumber": "FP5501",
"studentName": "Jane Doe",
"Subject": "Economics",
"grade": "A",
"result": "Pass"
},{
"studentNumber": "FP5502",
"studentName": "Bane Doe",
"Subject": "Arts",
"result": "Fail"
}
]
期望输出为嵌套数组,如下格式:
[
{
"studentNumber": "FP5500",
"studentName": "John Doe",
"Status": "Pass",
"reportDetails": {
"Subject": "Arts",
"grade": "B"
}
},
{
"studentNumber": "FP5501",
"studentName": "Jane Doe",
"Status": "Pass",
"reportDetails": [{
"Subject": "Arts",
"grade": "B"
},
{
"Subject": "Economics",
"grade": "A"
}]
}
]
数组中的第四个元素 (3rd student) 应该被忽略,因为 "result" 是 "Fail",但是前两个学生应该被包含在响应中,应该只有 "StudentName" => Jane Doe 条目,其中包含用于主题详细信息的嵌套数组。
我进行了研究,但找不到有效的解决方案(不使用 for 或 foreach 循环)。我尝试使用 mapObject 对重复地图进行地图和过滤,但没有进展。我该如何解决?
【问题讨论】:
标签: arrays nested dataweave mulesoft mule4