首页 > 解决方案 > 使用 Mule 4 中所需的任一字段验证 json 数组

问题描述

请求 Json 如下所示:-

{ 
   "eNumber": 8506493,   
   "details": [
     {
      "id":12345,
      "name": xyz123
     }
  ]
}

作为要求的一部分,我需要检查“id”或“name”字段必须存在的“details”数组。如果存在“id”字段,则“name”是非强制性的。如果存在“name”字段,则“id”是非强制性的。如果不满足则抛出错误。

我尝试了几个选项,使用过滤详细信息数组并检查验证组件中过滤数组的大小。它似乎运行得不好。如果有人有更好的解决方案。请在这里分享。

标签: muledataweavemule4

解决方案


如果通过您的条件,此示例代码将返回 true 或 false

%dw 2.0
import * from dw::core::Arrays
output application/json
---
payload.details every ((item) -> item.id? or item.name?)

我正在使用的函数是检查数组中的所有元素是否都通过给定条件的函数。

稍后您可以使用一个选项并使用raise 错误 ,或者您可以使用带有 if else的fail dw 函数。


推荐阅读