mule - dataweave 中的 mule 过滤器逻辑处理
问题描述
我有一个 Json 有效载荷,即
{
"Numbers": [
0
],
"title": "string",
"Ids": [
0, 1, 2
],
"group": 0
}
我正在打一个http调用来收集数据库中所有客户的记录,即
{
"details": [{
"detailId": 0,
"Id": 0,
"name": "string",
"place": "string",
"country": "string",
"bloodgroup": "string",
"area": "string"
},
{
"detailId": 0,
"Id": 1,
"name": "string",
"place": "string",
"country": "string",
"bloodgroup": "string",
"area": "string"
}
]
}
现在,我想过滤和提取那些在 Ids 字段中的 Request payload 中获得的 Id 的数据,并在集合响应有效负载中匹配它们。
ID 字段在请求负载和响应负载中很常见
请帮助我。
解决方案
假设您将第一个有效负载存储在一个名为flowVars.ids
. 您想使用该contains
方法,true
如果您要检查的值包含在数组中,则该方法有效,否则返回false
. 这里有几个例子:
// Returns true
[1,2,3,4,5] contains 5
// Returns false
[1,2,3,4,5] contains "Hello"
所以你可以filter
像这样构建你的结构(假设 Mule 3.x 和 DataWeave 1.0):
%dw 1.0
%output application/java
%var ids = flowVars.ids.Ids
---
payload.details filter (ids contains $.Id)
推荐阅读
- javascript - internal/modules/cjs/loader.js:960 错误:找不到模块'C:\Users\Sanjai\AppData\Roaming\npm\node_modules\protractor\bin\protractor'
- android - Android 在所有活动中更改语言
- java - Apache 点燃备份副本分发
- c# - 用grpc构建asp net core,错误:wellknowntype not found
- c - 我如何计算段落中的单词数?我一直数错
- transactional-replication - 配置事务复制时无法添加分发服务器
- ios - 以正确的语言加载 App Store 页面(外部浏览器或 SKStoreProductViewController)
- python - urlsafe_b64decode:返回 binascii.a2b_base64(s)
- android - android改造超时,但适用于铬
- javascript - 如何在 JavaScript 中包含多个文件夹?