DataWeave 2.0 将指定JSON转换为目标XML的实现方法咨询
DataWeave 2.0 转换实现方案
核心逻辑为将嵌套的pricingDetails数组展开,和外层id关联生成独立节点,使用flatMap + map组合即可实现,完整代码如下:
%dw 2.0 output application/xml indent=true --- ListOfPInfo: payload flatMap (item) -> item.pricingDetails map (detail) -> pInfo: { pId: item.id, // 若不需要uLow值前的空格,直接写detail.uLow即可 uLow: " " ++ (detail.uLow as String), uHigh: detail.uHigh default "", unitPrice: detail.unitPrice }
代码说明
- 首先指定输出格式为
application/xml,开启缩进匹配目标格式的排版 - 使用
flatMap遍历外层JSON数组,同时将每个对象下的pricingDetails数组合并成一维数组,避免生成嵌套节点 - 对每个
pricingDetails条目生成<pInfo>节点,将外层的id映射为<pId>,uHigh字段的null值通过default ""处理为空标签,完全匹配目标格式要求 - 你提供的目标XML示例存在标签闭合笔误,上述代码会自动生成符合W3C规范的闭合标签
内容的提问来源于stack exchange,提问作者Sue
相关产品推荐
相关产品推荐

