如何使用DataWeave为匹配正则的日期字符串追加'as Date'
给JSON字符串中的日期追加'as Date'标记的DataWeave实现
直接用DataWeave的正则替换就能搞定这个需求,不用依赖Java的replaceAll函数。核心思路是匹配JSON字符串里所有带双引号的YYYY-MM-DD格式日期,然后在日期后面追加' as Date'标记,同时保留原日期内容。
实现代码
%dw 2.0 import dw::core::Strings input payload String output application/json skipNullOn="everywhere" --- Strings.replace(payload, /"(\d{4}-\d{2}-\d{2})"/, "\"$1\" as Date")
代码说明
- 正则表达式
/"(\d{4}-\d{2}-\d{2})"/:专门匹配被双引号包裹的YYYY-MM-DD格式日期,括号里的\d{4}-\d{2}-\d{2}是日期的正则规则,外层的双引号确保只匹配JSON里的日期字符串值。 - 替换模板
"$1" as Date:$1代表正则捕获到的原日期内容,替换后会保留原日期,同时在后面追加as Date标记。
输入输出示例
输入(字符串格式的JSON)
[{"customer": "ACME inc", "FirstOrderDate": "2025-01-01", "LastOrderDate": "2025-05-25", "ZipCode": "01234"}]
输出
[{"customer": "ACME inc", "FirstOrderDate": "2025-01-01" as Date, "LastOrderDate": "2025-05-25" as Date, "ZipCode": "01234"}]
内容的提问来源于stack exchange,提问作者CactusCake
相关产品推荐
相关产品推荐

