首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在json函数中转义双引号

问在json函数中转义双引号
EN

Stack Overflow用户
提问于 2017-11-03 13:40:51
回答 1查看 1.3K关注 0票数 1

我知道这应该很简单,但我想不出如何摆脱mysql查询中用于json操作的双引号。

我有以下例子:

代码语言:javascript
复制
SET @j = '{"4": 1, "0as@x"" : [1, 2, 3, 4], "b": [2, 3]}';

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

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

代码语言:javascript
复制
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,这是幕后完成的。

最后,我用\\的双引号逃走了,它起了作用。

最后的代码是working

代码语言:javascript
复制
SET @j = JSON_OBJECT('4', 1, '0as@x"', '[1, 2, 3, 4]', 'b', '[2, 3]');
SELECT JSON_ARRAY_APPEND(@j, '$."0as@x\\""',  2);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 15:20:55

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

代码语言:javascript
复制
SET @j = JSON_OBJECT('4', 1, '0as@x"', '[1, 2, 3, 4]', 'b', '[2, 3]');

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

代码语言:javascript
复制
SELECT JSON_ARRAY_APPEND(@j, '$.0as@x"',  2);

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47097178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档