如何在MuleSoft中将指定JSON数组值转换为数字类型
如何用DataWeave将JSON中itemType为downloadSpeed的value转为数字类型
你需要保留原JSON的完整结构,仅将items数组中itemType为downloadSpeed的value字段从带单位的字符串转为纯数字类型,以下是实现方案:
完整DataWeave代码
%dw 2.0 output application/json --- payload update { case items at .items -> items map (item) -> if (item.itemType == "downloadSpeed") item update { case v at .value -> (v splitBy " ")[0] as Number } else item }
代码说明
- 保留原结构:使用
update操作符精准修改payload中的items字段,不会改动itemType、id等其他原有字段 - 遍历处理数组元素:通过
map遍历items数组的每一项 - 条件判断与类型转换:
- 当
item.itemType等于downloadSpeed时,将value字符串按空格分割,提取出数字部分后转为Number类型 - 其他类型的item直接保留原有结构和值
- 当
输出结果
运行上述代码后,输出将完全匹配你的期望结果:
{ "itemType": "DD-Offer", "id": "DD-1", "items": [ { "itemType": "downloadSpeed", "value": 1000 }, { "itemType": "uploadSpeed", "value": "3 mpbs" }, { "itemType": "downloadSpeed", "value": 500 } ] }
内容的提问来源于stack exchange,提问作者Krish
相关产品推荐
相关产品推荐

