我正在尝试过滤来自 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 - Mule Dataweave %1.0 中的条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57413977/