使用Mule 4中所需的任一字段验证json数组
请求Json如下所示:-使用Mule 4中所需的任一字段验证json数组,mule,dataweave,mule4,Mule,Dataweave,Mule4,请求Json如下所示:- { "eNumber": 8506493, "details": [ { "id":12345, "name": xyz123 } ] } 作为需求的一部分,我需要检查“id”或“name”字段必须显示的“details”数组。如果存在“id”字段,“名称”是非强制性的。如果存在“名称”字段,“id”是非强制性的。如果未满足,则抛出错误 我尝试了几个选项,使用filter the details数组并
{
"eNumber": 8506493,
"details": [
{
"id":12345,
"name": xyz123
}
]
}
作为需求的一部分,我需要检查“id”或“name”字段必须显示的“details”数组。如果存在“id”字段,“名称”是非强制性的。如果存在“名称”字段,“id”是非强制性的。如果未满足,则抛出错误
我尝试了几个选项,使用filter the details数组并在validation组件中检查筛选数组的大小。它似乎不太管用。如果有人有更好的解决方案,请在此处共享。如果通过您的条件,此示例代码将返回true或false
%dw 2.0
import * from dw::core::Arrays
output application/json
---
payload.details every ((item) -> item.id? or item.name?)
我使用的函数是检查数组中的所有元素是否通过给定的条件
稍后,您可以使用选项和,也可以将dw函数与if-else一起使用。您可以将其限制在RAML级别。 样本RAML-
#%RAML 1.0
标题:api
类型:
测试1:
类型:对象
特性:
身份证件:
类型:字符串
示例:123a
测试2:
类型:对象
特性:
姓名:
类型:字符串
示例:xyz124
测试3:
类型:对象
特性:
枚举器:
类型:字符串
示例:8506493a
细节:
类型:[test1 | test2]
/测试:
职位:
正文:
应用程序/json:
类型:test3
我确实注意到了这一点。我希望这些验证在应用程序的中间完成。