在dataweave mule4中处理值

问题描述

我正在尝试匹配以下有效负载中的值。

    result = {
        "drives": [{
            "id": "0AC_FdkeL63mHUk9PVA","name": "QA"
        },{
            "id": "0AC_Ype39GAOpUk9PVA","name": "Salesforce.com"
        },{
            "id": "0AA9MLlEbuhRfUk9PVA","name": "UAT-zz-SFJobs-2020-10"
        }]
    }

使用下面的代码检查那里是否存在Salesforce.com值并将其返回。 使用以下代码

%dw 2.0
output application/json
---
payload.result.drives filter ((item,index) -> item.name == "Salesforce.com")

给我一​​个错误,我该如何实现

预期输出

"drives": [{
            "id": "0AC_Ype39GAOpUk9PVA","name": "Salesforce.com"
        } ]

解决方法

为我工作。您需要为响应创建一个drives属性,以匹配预期的输出。

请注意,输入不是有效的JSON。这可能是导致错误的原因。

%dw 2.0
output application/json
---
{ 
    drives: payload.result.drives filter ((item,index) -> item.name == "Salesforce.com") 
}

输出:

{
  "drives": [
    {
      "id": "0AC_Ype39GAOpUk9PVA","name": "Salesforce.com"
    }
  ]
}

输入(已调整):

{ 
    "result" : {
        "drives": [{
            "id": "0AC_FdkeL63mHUk9PVA","name": "QA"
        },{
            "id": "0AC_Ype39GAOpUk9PVA","name": "Salesforce.com"
        },{
            "id": "0AA9MLlEbuhRfUk9PVA","name": "UAT-zz-SFJobs-2020-10"
        }]
    }
}