dataweave - 与 Dataweave 相关的问题
问题描述
我需要根据类似的“键”值将来自 responseLicensing 的数据(如 expiryDate、cloudAccountName、cloudAccountId)附加到 responseSfdc 数据。
使用 responseSfdc 实例中的键在 responseLicensing 对象中执行查找,并将作为成功查找的结果挑选的一些键值对附加到 responseSfdc 对象。
%dw 2.0
output application/json
var responseSfdc = [{
"key": "SUBT00009925-1",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null
},
{
"key": "SUBT00009925-2",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null
}]
var responseLicensing = [{
"key": "SUBT00009925-1",
"expiryDate": "2021-01-16"
},
{
"key": "SUBT00009925-2",
"expiryDate": "2021-01-16",
"cloudPublicName": "dodp-testcloud",
"cloudAccountId": "a-t-1000-5001-0687-0024"
}]
---
{
responseSfdc map (sfdc,i) -> {
}
}
我需要的输出是这样的 -
[{
"key": "SUBT00009925-1",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null,
"expiryDate": "2021-01-16"
},
{
"key": "SUBT00009925-2",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null,
"expiryDate": "2021-01-16",
"cloudPublicName": "dodp-testcloud",
"cloudAccountId": "a-t-1000-5001-0687-0024"
}]
解决方案
似乎是leftJoin()函数的工作。
[%dw 2.0
output application/json
import * from dw::core::Arrays
var responseSfdc = \[{
"key": "SUBT00009925-1",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null
},
{
"key": "SUBT00009925-2",
"contractEndDate": null,
"product": {
"productName": "ArtPro+ Subscription",
"productCode": "ArtPro+S",
"downloadURL": null,
"upgradeProduct": null
},
"projectReference": null,
"orderNumber": "O-0000001105",
"orderCreationDate": "2020-07-14T07:48:04.000Z",
"subscriptionName": null,
"autoRenewal": null
}\]
var responseLicensing = \[{
"key": "SUBT00009925-1",
"expiryDate": "2021-01-16"
},
{
"key": "SUBT00009925-2",
"expiryDate": "2021-01-16",
"cloudPublicName": "dodp-testcloud",
"cloudAccountId": "a-t-1000-5001-0687-0024"
}\]
---
leftJoin( responseSfdc, responseLicensing, (sfdc) -> sfdc.key, (license) -> license.key) map ($.l ++ ($.r - "key"))][1]
推荐阅读
- php - Laravel 6 - 无法访问 Pivot 类中的属性
- javascript - 带有 node.js 的 jQuery AJAX 请求无法正常工作
- python - 通过字典键和公共列组合熊猫数据帧的多个字典
- javascript - Javascript - 在比较 2 个数组的 id 时包含方法
- linux - getopts 中的订单参数
- html - 将任何内容放入 Angular 组件的构造函数中会导致整个页面失败
- c# - EF core 3.1 - 实体和拥有类型的公用表
- python - 正则表达式与确切字符串不匹配
- python - 将“是”标志应用于每种类型帐户的所有第一个日期实例
- javascript - 将字符串重新排列为回文