如何将数组值列表转换为 Dataweave 中的映射
How to convert a list of Array Values into a Map in 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])
您好,我有一个采用这种格式的负载。尝试编写数据编织函数来转换此有效载荷,但我无法满足确切的期望。
{
"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])