dataweave - 如何将数组值列表转换为 Dataweave 中的映射
问题描述
嗨,我有一个这种格式的有效载荷。尝试编写 dataweave 函数来转换此有效负载,但我无法满足确切的期望。
{
"OUT_ORDER_CONTENTS_TAB": [
[
776665544,
100,
"Limited C/O",
"loanPurpose"
],
[
776665544,
100,
"THE PURPOSE OF PURCHASE ",
"loanPurpose"
],
[
776665544,
100,
"contains blank space",
"borrower/2/borrowerPhone"
]
]
}
预期的输出格式是
{
"/loanPurpose": ["Limited C/O","THE PURPOSE OF PURCHASE "],
"/borrower/2/borrowerPhone": ["contains blank space"]
}
解决方案
它比仅将数组转换为映射要复杂一些,因为数组的元素内部是数组,您需要按一个索引(第 4 个元素)分组并从另一个(第 3 个元素)收集值。
可以使用 groupBy() 和 mapObject() 来完成:
%dw 2.0
output application/json
---
(payload.OUT_ORDER_CONTENTS_TAB
groupBy ((item, index) -> item[3] ) )
mapObject ((value, key, index) -> ("/"++(key)):value map $[2])
推荐阅读
- html - 使用顶部的 CSS li 项目放置
- node.js - 错误:Route.post() 需要一个回调函数,但得到一个 [object Undefined],不知道如何继续
- python - 反转python的元音变音编码以规范化文本或以当前形式规范化
- php - 5张表之间的Laravel关系
- python - Python 等效于 Javascript Object.values() 方法
- python - 如何获取 Sagemaker 实例 CPU 利用率
- node.js - NodeJS & RxJS:将 observables 转换为 nodeJs 流
- regex - bash 中的正则表达式量词——简单与扩展匹配 {n} 次
- excel - Excel中的范围加法和乘法
- python - 尝试对 .csv 数据集进行 linregress 时,Scipy.stats 错误“要解压的值太多”