如何用DWL脚本批量为JSON中properties的键添加前缀main?
DataWeave 动态处理对象键的解决方案
要实现自动为properties内的所有键添加"main"前缀,同时保留somekey字段,无需手动逐个映射,可以用DataWeave的mapObject函数实现动态遍历处理。
完整脚本
%dw 2.0 output application/json --- { somekey: payload.somekey } ++ (payload.properties mapObject ((value, key) -> { ("main" ++ key): value }))
脚本说明
- 保留原有字段:直接提取
payload.somekey字段,保留其原始值。 - 动态遍历处理:用
mapObject遍历payload.properties中的每一组键值对:("main" ++ key):将原键名与"main"前缀拼接,生成新的键名value:保留原键对应的数值
- 合并结果:用
++运算符将原始somekey对象和处理后的键值对合并成最终的JSON结构。
输入输出示例
输入JSON
{ "somekey": "sampleData", "properties": { "id": 1001, "status": "active", "category": "premium" } }
输出JSON
{ "somekey": "sampleData", "mainid": 1001, "mainstatus": "active", "maincategory": "premium" }
这种方式完全不需要手动枚举properties内的键,后续新增任何键都会被自动处理,彻底解决了手动映射需要重复修改脚本的问题。
内容的提问来源于stack exchange,提问作者Nikhil
相关产品推荐
相关产品推荐

