如何在DataWeave中为字符串添加双引号并完成指定格式转换
解决DataWeave中双引号转义问题
问题描述
输入JSON:
{ "Id": "0065e00000JyZi5AAG", "Description": "desc104" }
预期输出:
{ ":Id": "{\"S\": payload.Id}", ":Description": "{\"S\": payload.Description}" }
注:预期输出里的双引号在JSON规范中需用反斜杠转义,最终字符串内容实际为{"S": payload.Id},只是在JSON结构中显示为转义后的形式。
修正后的DataWeave代码
方法1:直接转义双引号
在拼接字符串时,用\"对双引号进行转义:
%dw 2.0 output application/json --- payload mapObject ((value, key) -> { (":" ++ key as String): "{\"S\": payload." ++ key as String ++ "}" })
方法2:使用字符串插值(更简洁)
利用DataWeave的字符串插值语法${},简化键名拼接逻辑:
%dw 2.0 output application/json --- payload mapObject ((value, key) -> { (":" ++ key as String): "{\"S\": payload.${key}}" })
关键说明
- 无需额外定义
keysArray变量,直接通过mapObject的key参数即可获取当前键名。 - JSON结构中的字符串若包含双引号,必须用反斜杠
\转义,否则会破坏JSON格式。 - 两种方法均可生成符合要求的输出,插值方式代码更简洁易读。
内容的提问来源于stack exchange,提问作者aditya parkhe
相关产品推荐
相关产品推荐

