mule - 将json数组转换为带有内部数组的单个json
问题描述
我从系统收到 json 格式的消息,并希望执行转换以获得以下消息
消息来源:
[
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": "2019-01-03T22:00:00",
"BATCH_ID": 1812,
"STORENUMBER": 1197,
"PROCESS_STATUS": "P"
},
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": "2019-01-04T18:00:00",
"BATCH_ID": 1812,
"STORENUMBER": 1197,
"PROCESS_STATUS": "P"
},
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": "2019-01-03T22:00:00",
"BATCH_ID": 1314,
"STORENUMBER": 1198,
"PROCESS_STATUS": "P"
},
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": "2019-01-04T18:00:00",
"BATCH_ID": 1314,
"STORENUMBER": 1198,
"PROCESS_STATUS": "P"
}]
预期产出
[
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": ["2019-01-03T22:00:00","2019-01-04T18:00:00"],
"BATCH_ID": 1812,
"STORENUMBER": 1197,
"PROCESS_STATUS": "P"
},
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": ["2019-01-03T22:00:00","2019-01-04T18:00:00"],
"BATCH_ID": 1812,
"STORENUMBER": 1198,
"PROCESS_STATUS": "P"
}]
我是 dataweave 的新手并尝试使用 map 但无法理解如何实现结果。
解决方案
在 dataweave 中尝试以下操作:
%dw 1.0
%output application/json
%var time=(payload map $.STORE_CLOSING_TIME) distinctBy $.STORE_CLOSING_TIME
---
(payload map {
"OPERATING_COMPANY": $.OPERATING_COMPANY,
"STORE_CLOSING_TIME": time,
"BATCH_ID": $.BATCH_ID,
"STORENUMBER": $.STORENUMBER,
"PROCESS_STATUS": $.PROCESS_STATUS
}) distinctBy $.STORENUMBER
输出:
[
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": [
"2019-01-03T22:00:00",
"2019-01-04T18:00:00"
],
"BATCH_ID": 1812,
"STORENUMBER": 1197,
"PROCESS_STATUS": "P"
},
{
"OPERATING_COMPANY": "xx",
"STORE_CLOSING_TIME": [
"2019-01-03T22:00:00",
"2019-01-04T18:00:00"
],
"BATCH_ID": 1314,
"STORENUMBER": 1198,
"PROCESS_STATUS": "P"
}
]
推荐阅读
- debugging - 如何在打开 QuickView 窗口的同时浏览代码?
- php - 如何使用 XAMPP 打开 PHP 文件?
- javascript - 如何在 Chrome 中正确预取 json 端点?
- android - 如何在关注可重用性和关注点分离的 android 库模块之间实现导航?
- algorithm - 通过普通算法构建后缀树是否需要构建后缀树作为第一阶段?
- c# - 加载 DataGrid (MVVM) 时显示 WPF DataGridComboBoxColumn 的值
- bbedit - BBEdit 中的美人鱼和 MMD?
- unix - unix 中的命令/脚本在 ascci 中转换大型机 ebcdic 文件
- cakephp - html链接中的Cakephp跨度
- flutter - Flutter:如何将 DraggableScrollableActuator.reset 和 DraggableScrollableSheet 中的 ScrollController 用于嵌套列表?