在json函数mysql中转义双引号

时间:2017-11-03 13:40:52

标签: mysql json rdbms json-query

我知道它应该很简单,但是我无法弄清楚如何在mysql查询中转义双引号以进行json操作。

我有以下示例:

SET @j = '{"4": 1, "0as@x"" : [1, 2, 3, 4], "b": [2, 3]}';

请注意第二个键内的双引号:0as@x"

如果我运行此查询:SELECT JSON_ARRAY_APPEND(@j, '$."0as@x\"', '2'); 我收到以下错误:

Error Code: 3141. Invalid JSON text in argument 1 to function json_array_append: "Missing a colon after a name of object member." at position 16.

我只想知道如何在json对象键的变量名中转义双引号。

我也尝试将引号"""加倍,并带有两个反斜杠\\" ...

你能帮我吗?

谢谢!

稍后编辑

在set语句中,我使用\"转义了双引号。如果您使用JSON_OBJECT

,则会执行此操作

最后,我使用双引号\\进行了转义,然后才有效。

正常工作的最终代码

SET @j = JSON_OBJECT('4', 1, '0as@x"', '[1, 2, 3, 4]', 'b', '[2, 3]');
SELECT JSON_ARRAY_APPEND(@j, '$."0as@x\\""',  2);

1 个答案:

答案 0 :(得分:0)

使用JSON_OBJECT函数构建对象,这样:

SET @j = JSON_OBJECT('4', 1, '0as@x"', '[1, 2, 3, 4]', 'b', '[2, 3]');

然后是函数(键名称周围没有额外的引号):

SELECT JSON_ARRAY_APPEND(@j, '$.0as@x"',  2);

希望它有所帮助。

相关问题