MySQL 中的 JSON_ARRAY_INSERT 函数将新 JSON 括在双引号中
下面是 MySQL 脚本的代码片段
mysql> SET @j1 = '[{"Documents": []}]';
mysql> SET @j2 = '{"rc":{"DisplayName":"Registration Certificate","Extension":"png"}}';
mysql> SET @path = '$[0].Documents[0]';
mysql> SELECT REPLACE(JSON_ARRAY_INSERT(@j1, @path, @j2), '\\', '');
上述脚本生成的输出为:
[{“文档”: [“{”rc“:{”DisplayName“:”注册证书“,”extension“:”png“}}”]}]
如果不使用 REPLACE 函数,生成的输出为:
[{“文档”: [“{\”rc“:{\”DisplayName\“:\”注册证书\“,\”扩展名\“:\”png\“}}”]}]
然而,期望的输出是:
[{“文档”: [{“rc”:{“DisplayName”:“注册证书”,“extension”:“png”}}]}]
区别在于 .此外,JSON_ARRAY_INSERT 还在 .@j2@j2
脚本出了什么问题?也可以删除反斜杠。