我正在使用mule社区版。所以没有Dataweave。我正在我的应用程序中使用休息服务。在这个后端休息服务的json响应中。我需要检查一个特定的元素是否存在于多个元素的多个元素中以及它存在的位置我需要更新它的值。
E.g。 (样品)
Input Request : [ { "id" : "1", "item" : "car", "make" : "Tonda" }, { "id" : "1", "item" : "car" } ]
使用foreach迭代数组。内部为每个需要在表达式组件中执行类似下面的操作。
if( payload.make exists) { payload.make = "Tero"; }
但我不知道,如何检查“if element exists”“condition。我在下面的表达式组件中尝试过
if( payload.make != empty) { payload.make = "Tero"; }
但它没有用,并且在特定键(make)不存在的地方为每个数组元素提供错误“表达式的执行失败(org.mule.api.expression.ExpressionRuntimeException)”
答案 0 :(得分:1)
在foreach中使用表达式#[payload.containsKey('make')]
来检查json键是否存在。这将返回true
或false
答案 1 :(得分:0)
在流程中测试,如果您的有效负载是单个对象而不是集合,则可以执行MEL:
console.log()
]
只需使用您的真实条件更改“EXISTS”,使用虚假条件更改“OPS NO”。
根据文件:https://docs.mulesoft.com/mule-user-guide/v/3.7/mule-expression-language-reference
无安全性
要以null安全方式访问属性,请添加。?操作符在链中的一个或多个对象之前。在以下表达式中,如果fieldA为null,则表达式的计算结果为null而不是NullPointerException。