如何优化DataWeave实现YAML/JSON转扁平化Properties文件?
精简版YAML/JSON转Properties的DataWeave脚本(不支持数组)
优化后的脚本
%dw 2.0 import * from dw::util::Tree output text/plain --- (payload mapLeafValues (value, path) -> "$(joinBy(path.selector, '.'))=$(value)" ) pluck $ joinBy "\n"
优化说明
- 移除冗余的
collectLeaves函数:dw::util::Tree模块的mapLeafValues方法本身会遍历所有叶子节点,返回的结构已是扁平化的键值映射,无需额外处理嵌套对象 - 合并字符串生成逻辑:直接在叶子节点处理阶段生成
key=value格式的字符串,避免先构建中间对象再拆解的多余步骤 - 简化流程链:通过
pluck提取所有生成的字符串条目,再用joinBy直接拼接成符合Properties格式的文本
示例输入
db: host: "db.example.com" port: "1234" pass: "pass123" config: pool: "3" log: level: "INFO"
示例输出
db.host=db.example.com db.port=1234 db.pass=pass123 db.config.pool=3 log.level=INFO
内容的提问来源于stack exchange,提问作者Jorge Garcia
相关产品推荐
相关产品推荐

