MuleSoft新手求助:如何用DataWeave过滤JSON对象的null值?
解决DataWeave过滤JSON对象中非null值的问题
嘿,刚入门MuleSoft和DataWeave的时候我也碰到过类似需求,其实用DataWeave的内置函数就能轻松搞定!
核心思路是用filterObject函数遍历输入JSON的所有键值对,只保留值不为null的条目。下面是具体的实现代码:
%dw 2.0 output application/json --- payload filterObject ((value, key) -> value != null)
代码说明:
%dw 2.0:声明使用DataWeave 2.0版本(Mule 4及以上版本的默认版本)output application/json:指定输出格式为JSONpayload:指代你输入的原始JSON对象(就是示例里包含null值的那个对象)filterObject:这个函数会逐个检查对象的键值对,lambda表达式((value, key) -> value != null)定义了过滤规则——只有当值不等于null时,对应的键值对才会被保留到最终结果里
测试验证:
输入JSON:
{ "str1": "String 1", "str2": "String 2", "str3": null, "str4": "String 4" }
运行上述代码后,输出就是你期望的结果:
{ "str1": "String 1", "str2": "String 2", "str4": "String 4" }
如果之后你需要过滤其他空值类型(比如空字符串、空数组),只需要修改过滤条件就行,比如value != null and value != ""就能同时排除null和空字符串。
内容的提问来源于stack exchange,提问作者Ares
相关产品推荐
相关产品推荐

