json - Mule Dataweave %1.0 中的条件过滤

标签 json mule mule-component anypoint-studio dataweave

我正在尝试过滤来自 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/

相关文章:

mule - 插入参数化查询

python - t.unicode ('utf-8' 的意外行为)- Python

mule - 如何使用文件入站端点来处理从 MuleClient.dispatch() 获取名称作为有效负载的文件

oauth-2.0 - 无法从 Mule Salesforce 获取访问 token

soap - 使用Mule 3.5.1 EE Web服务使用者组件时如何获取SOAP Fault xml?

mule - 如何忽略 DataWeave Mule esb 中的空对象

javascript - 如何提取 json 对象中的 json 对象

java - 找不到合适的方法来解析(java.io.InputStream)

java - HTTP 错误代码 415 - JAVA 中的 JSON 数组

骡子改变日期格式