输入-
[
{
"SBQQ__Language__c": "th",
"SBQQ__APIName__c": "Description",
"SBQQ__Text__c": null,
"SBQQ__LongTextArea__c": "Packaging prepress - TH"
},
{
"SBQQ__Language__c": "th",
"SBQQ__APIName__c": "Name",
"SBQQ__Text__c": "ArtPro - TH",
"SBQQ__LongTextArea__c": null
},
{
"SBQQ__Language__c": "es",
"SBQQ__APIName__c": "Name",
"SBQQ__Text__c": "ArtPro - ES",
"SBQQ__LongTextArea__c": null
},
{
"SBQQ__Language__c": "es",
"SBQQ__APIName__c": "Description",
"SBQQ__Text__c": null,
"SBQQ__LongTextArea__c": "Packaging prepress - ES"
},
{
"SBQQ__Language__c": "de",
"SBQQ__APIName__c": "Name",
"SBQQ__Text__c": "ArtPro - DE",
"SBQQ__LongTextArea__c": null
},
{
"SBQQ__Language__c": "de",
"SBQQ__APIName__c": "Description",
"SBQQ__Text__c": null,
"SBQQ__LongTextArea__c": "Packaging prepress - DE"
}
]
必需的输出:
[
{
"locale": "th",
"name": "ArtPro - TH",
"description": "Packaging prepress - TH"
},
{
"locale": "es",
"name": "ArtPro - ES",
"description": "Packaging prepress - ES"
},
{
"locale": "de",
"name": "ArtPro - DE",
"description": "Packaging prepress - DE"
}
]
注意:映射-
'locale' : SBQQ__Language__c,
'name' : SBQQ__Text__c,
'description' : SBQQ__LongTextArea__c
我尝试使用groupBy,然后尝试合并,但未成功。
尝试一下:
%dw 2.0
output application/dw
---
payload groupBy $.SBQQ__Language__c
mapObject (
(v,k,i) -> {
(k): {
locale: k,
name: (v filter ($.SBQQ__APIName__c == "Name"))[0].SBQQ__Text__c,
description: (v filter ($.SBQQ__APIName__c == "Description"))[0].SBQQ__LongTextArea__c
}
}
)
pluck $
我必须作一些假设,考虑到除了输入和输出之外没有太多解释,这对于尝试推断您想要的内容非常有用。如果这不是您要查找的内容,则可能会在您的问题中提供更多详细信息,我将对此进行修改。
希望对您有帮助。
编辑:我相信此解决方案将执行得更好:
%dw 2.0
output application/dw
---
payload groupBy $.SBQQ__Language__c
mapObject (
(v,k,i) -> {
(k): v reduce (e, acc={locale: k}) -> acc ++ do {
var field = lower(e.SBQQ__APIName__c)
---
(field): if (field == "name") e.SBQQ__Text__c else e.SBQQ__LongTextArea__c
}
}
)
pluck $