使用 Mule 4 中所需的任一字段验证 json 数组

Inf*_*ity 2 mule dataweave mule4

请求 Json 如下所示:-

{ 
   "eNumber": 8506493,   
   "details": [
     {
      "id":12345,
      "name": xyz123
     }
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

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

mac*_*val 7

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

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

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

稍后您可以使用选择和使用引发错误, 或者您可以使用带有 if else的fail dw 函数。