You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADF数据流构建JSON文件时移除空JSON对象与数组的方法

在ADF数据流中移除嵌套空对象和空数组的解决方法

步骤1:将单个字段转换为非空对象

通过派生列组件,针对邮箱、地址字段生成仅包含有效内容的结构化对象,空值时返回null:

  • 派生列名:emailObj,表达式:iif(!isNull(email) && trim(email) != '', struct(email as email), null())
  • 派生列名:addressObj,表达式:iif(!isNull(address) && trim(address) != '', struct(address as address), null())

步骤2:生成过滤后的联系人数组

再添加一个派生列,把上述对象收集到数组中,并过滤掉null元素:

  • 派生列名:contactData,表达式:filter(array(emailObj, addressObj), item -> !isNull(item))

步骤3:移除空数组

判断过滤后的数组长度,为空则将整个contactData设为null(Sink可识别并移除null字段):

  • 修改contactData的派生表达式:iif(length(contactData) == 0, null(), contactData)

步骤4:Sink端配置

在JSON Sink的设置面板中,找到Null值处理选项,勾选移除包含null值的列。此时空的contactData数组会因为被设为null而被移除,嵌套的空对象也已被过滤,最终输出的JSON不会包含无效的空结构。

补充提示

  • 如果联系人对象结构更复杂(比如邮箱包含多个子字段),只需在struct()中调整字段映射,保留空值判断逻辑即可。
  • 若CSV中的空值是空白字符串而非null,必须用trim(field) != ''配合!isNull()做双重判断,避免遗漏空白内容的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:16:08