Dataweave附加在转换中

问题描述

我试图将所有存在于“ fields”数组中的id值合并到一个变量中。

输入:

{
    "rootId":"1oV_wWX-19utijBTxn1QHLsVFjvO-8DSG","jobName":"C##-#9-00057 Demand QA 1.1","folderName":"Billing","parentId":"188Hde_c_ZQiFQeSZX7IxCJGSWySWFOHn","includeSubfolder":true,"files": [{ 
        "id": "1JdVXF4EDI2if6kxTSTsYlYhmADeXZQf3","name":"Billing","mimeType": "application/vnd.google-apps.folder"
         },{ 
        "id": "1KeYyslxo4ezNeuedn4XrXrWvfaaKKvXU","name":"GoogleSheet1","mimeType": "application/vnd.google-apps.document"
         },{ 
        "id": "1Poh5FMry692_0iFfmdcwtqT6RxeeoOt0","name":"Forms",{ 
        "id": "1NFQ_89UzVlLYduquZ4hsch4dB65h6fkv","name":"Zipfile.zip","mimeType": "application/zip"
         }
     ]
}

以上是我输入的有效载荷。

我正在尝试在Dataweave表达式下面

%dw 2.0
output plain/text
var FileorFolderIds = ""
---
payload.files map (Sample,indexOfSamples) ->{
    FileorFolderIds = FileorFolderIds ++ ',' ++ Sample.id
}

但给我错误

预期输出

FileorFolderIds = 1JdVXF4EDI2if6kxTSTsYlYhmADeXZQf3,1KeYyslxo4ezNeuedn4XrXrWvfaaKKvXU,1Poh5FMry692_0iFfmdcwtqT6RxeeoOtZ4LY6B

像上面的

解决方法

%dw 2.0
output text/plain
var FileorFolderIds = ""
---
payload.files map $.id joinBy  (",")

这将返回:

1JdVXF4EDI2if6kxTSTsYlYhmADeXZQf3,1KeYyslxo4ezNeuEdN4XrXrWvfaaKKvXU,1Poh5FMry692_0iFfmdcwtqT6RxeeoOt0,1NFQ_89UzVlLYduquZ4hsch4dB65h6fkv
,

@Counter Boxer已经很接近了,但是还没有达到预期的输出,我相信它可以进一步简化。


%dw 2.0
output text/plain
---
"FileorFolderIds = $(payload.files.*id joinBy  ',')"