如何使用MySQL原生命令移除字符串转义符号并转换为JSON格式
MySQL原生转义字符处理方案
高版本MySQL(8.0.19及以上)最优解
MySQL原生提供JSON_UNESCAPE()函数,可直接解析字符串中的所有JSON标准转义序列(包括\"、\n、\uXXXX等格式),完全匹配转JSON前的预处理需求,调用方式如下:
SELECT CONVERT(JSON_UNESCAPE(somecolumn), JSON) AS parsed_json FROM your_table;
低版本MySQL兼容方案
如果使用的是8.0.19以下的版本,没有内置的通用转义解析函数,可以根据实际转义场景用REPLACE手动清理:
- 仅需要移除反斜杠转义符的场景:
-- 注意SQL里要写两个反斜杠才能匹配到存储的单个反斜杠 SELECT CONVERT(REPLACE(somecolumn, '\\', ''), JSON) AS parsed_json FROM your_table;
- 如果同时存在HTML实体转义(比如
"、&),可以叠加替换规则:
SELECT CONVERT( REPLACE( REPLACE( REPLACE(somecolumn, '\\', ''), '"', '"' ), '&', '&' ), JSON ) AS parsed_json FROM your_table;
注意事项
优先使用JSON_UNESCAPE方案,该函数覆盖所有JSON规范定义的转义场景,比手动写REPLACE规则更全面,不会出现漏处理的情况。
内容的提问来源于stack exchange,提问作者Ding Li
相关产品推荐
相关产品推荐

