如何将数组值列表转换为 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])