You need to enable JavaScript to run this app. 如何在DataWeave中移除数组内所有键值均为null或空值的对象?
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataWeave中移除数组内所有键值均为null或空值的对象?

DataWeave 移除数组内所有键值全为空的对象

实现方案

直接使用内置函数组合完成筛选,无需自定义复杂递归逻辑:

%dw 2.0
output application/json
---
payload filter (item) -> !values(item) every isEmpty

逻辑解释

  • values(item):提取当前对象的所有属性值,形成一维数组
  • every isEmpty:对属性值数组做全量校验,判断是否所有值都符合isEmpty判定规则(可识别null、空字符串两类典型空值)
  • 过滤规则:取全量校验结果的反值——也就是只要对象存在至少一个非空属性,就会被保留;当对象所有属性全为空时,就会被剔除

自定义空值规则适配

如果需要将纯空白字符串(如" ")也纳入空值判定,可替换校验逻辑:

%dw 2.0
output application/json
---
payload filter (item) -> !values(item) every (value -> isEmpty(trim(value default "")))

效果验证

针对提供的输入样例,运行上述代码的输出与预期完全一致:

  1. 第一个对象{"Order":"123","Product":"456"}存在非空值,保留
  2. 第二个对象{"Order":"","Product":""}所有值均为空,被剔除

内容的提问来源于stack exchange,提问作者anxiousAvocado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 16:27:00