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

Mule DataWeave:多JSON地址对象转单列表的实现问题

如何合并分散的地址字段为统一的地址数组?

我明白你现在的需求:把输入JSON里三个独立的地址对象(ResidentialAddress、OfficeAddress、TempAddress)合并成一个Address数组,之前尝试用address:payload.ResidentialAddress ++ payload.TempAddress没得到想要的结果对吧?

其实问题出在++运算符的用法上——它是用来拼接两个数组的,但你这里的每个地址都是单个对象,不是数组,所以直接用这个运算符会报错或者得到不符合预期的结果。

正确的实现方式(DataWeave 2.0)

你只需要把这三个地址对象直接放进一个数组里就行,代码如下:

%dw 2.0
output application/json
---
{
    Address: [payload.ResidentialAddress, payload.OfficeAddress, payload.TempAddress]
}

运行这段代码后,就能得到你想要的目标JSON:

{
  "Address": [
    { "type": "RES", "Building": "String" },
    { "type": "OFC", "Building": "String" },
    { "type": "TEMP", "Building": "String" }
  ]
}

进阶处理:过滤空值(可选)

如果你的输入里有可能存在某个地址字段为null的情况,可以加上过滤逻辑,避免数组里出现空元素:

%dw 2.0
output application/json
---
{
    Address: [payload.ResidentialAddress, payload.OfficeAddress, payload.TempAddress] filter ((item) -> item != null)
}

这样即使某个地址字段不存在或者为null,最终的Address数组里只会保留有效的地址对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:15:42