Mule Dataweave %1.0 中的条件过滤
Conditional filtering in Mule Dataweave %1.0
我正在尝试过滤来自 JSON 数组的特定值。我的示例数组如下:
"source":[
{
"value": {
"Type": [
{
"val": "Primary",
"code": "PRI"
}
],
"Value": [
{
"val": "PHAR",
"Code": "Pharmacy"
}
]
}
},
{
"value": {
"Type": [
{
"val": "Secondary",
"code": "SEC"
}
],
"Value": [
{
"val": "HOSP",
"Code": "Hospital"
}
]
}
}
]
在上面,我需要读取第一次出现的 source.value.Value.val 其中 source.value.Type.code=="SEC"
我的数组可以有多个代码,如 "PRI"、"SEC" 等,我只需要获取代码 = "SEC" 的数据(第一次出现)
您可以使用过滤器函数来过滤您的数组。
%dw 1.0
%output application/json
---
{
output: payload.source filter ($.value.Type[0].code == "SEC")
}
以上代码将产生以下输出:
{
"output": [
{
"value": {
"Type": [
{
"val": "Secondary",
"code": "SEC"
}
],
"Value": [
{
"val": "HOSP",
"Code": "Hospital"
}
]
}
}
]
}
修正案:这是新的一段代码,它只会给你你正在寻找的值,而不是整个数组
%dw 1.0
%output application/json skipNullOn="everywhere"
---
{
(payload.source default [] map (source, indexOfSource) -> {
output: source.value.Value[0].val when source.value.Type[0].code == "SEC" otherwise null
})
}
上面这段代码的输出是:
{
"output": "HOSP"
}
我正在尝试过滤来自 JSON 数组的特定值。我的示例数组如下:
"source":[
{
"value": {
"Type": [
{
"val": "Primary",
"code": "PRI"
}
],
"Value": [
{
"val": "PHAR",
"Code": "Pharmacy"
}
]
}
},
{
"value": {
"Type": [
{
"val": "Secondary",
"code": "SEC"
}
],
"Value": [
{
"val": "HOSP",
"Code": "Hospital"
}
]
}
}
]
在上面,我需要读取第一次出现的 source.value.Value.val 其中 source.value.Type.code=="SEC" 我的数组可以有多个代码,如 "PRI"、"SEC" 等,我只需要获取代码 = "SEC" 的数据(第一次出现)
您可以使用过滤器函数来过滤您的数组。
%dw 1.0
%output application/json
---
{
output: payload.source filter ($.value.Type[0].code == "SEC")
}
以上代码将产生以下输出:
{
"output": [
{
"value": {
"Type": [
{
"val": "Secondary",
"code": "SEC"
}
],
"Value": [
{
"val": "HOSP",
"Code": "Hospital"
}
]
}
}
]
}
修正案:这是新的一段代码,它只会给你你正在寻找的值,而不是整个数组
%dw 1.0
%output application/json skipNullOn="everywhere"
---
{
(payload.source default [] map (source, indexOfSource) -> {
output: source.value.Value[0].val when source.value.Type[0].code == "SEC" otherwise null
})
}
上面这段代码的输出是:
{
"output": "HOSP"
}