【发布时间】:2021-04-28 20:47:30
【问题描述】:
我正在将我的有效负载映射到一个新的有效负载,并在输出如下所示的位置添加一个错误数组。 :
payload : [{
"test: "test",
"test2" : "",
"test3" : "test3"
},
{
"test: "test",
"test2" : "test2",
"test3" : "test3"
}]
预期输出:`有效载荷:[{
"test: "test",
"test2" : "",
"test3" : "test3",
"Errors" : {
"test2" : "Test2 is NULL"
}
},
{
"test: "test",
"test2" : "test2",
"test3" : "test3",
"Errors" : {
}
}]`
预期输出:我想获得一个输出,其中我只从 Payload 中获取所有对象,其中 Errors 数组具有任何非空值的键,否则应将其过滤掉。
我正在使用下面的表达式来实现,但这不可行,因为它需要我为 Errors 数组中的每个键添加一个空检查。
errArr."Errors" filter ((item, index) -> item."test" != "" or item."test2" != "" or
item."test3" != "")
必须有更好的方法来做到这一点?有没有办法只检查每个项目(键)的值而不定义它们的名称?
【问题讨论】:
-
只是为了记录,Dataweave中的空字符串不是
null。 -
是的,我明白这一点。我的目标是仅在特定键的验证失败时向数组添加错误,如果不可能,我需要提取成功行(错误中没有错误)。
-
创建一个预期的输出,因为您的句子:
I want to get an output where I only get all objects from Payload where Errors array has any key with not null values otherwise it should be filtered out.对我来说毫无意义。根据您的具体输入形成我可以收集的内容,您应该有一个空数组。 -
@George 对不起,我到处都是,我更新了输入输出,希望现在更清楚一点。
标签: dataweave anypoint-studio mule-component mulesoft