Mysql JSON.parse无法根据需要正常工作
我正在处理SQL及其JSON数据类型,我插入了一个数组对象并附加了新对象,但是当我使用Mysql JSON.parse无法根据需要正常工作,mysql,json,Mysql,Json,我正在处理SQL及其JSON数据类型,我插入了一个数组对象并附加了新对象,但是当我使用 “更新介绍集所有回复=合并(JSON\u数组\u追加(角色,$,” +JSON.stringify(appendedData) +“),其中id2=1;” 然后当我在节点上解析数据时,它就不起作用了。 这里是插入数据的图片,底部是附加数据 但是你可以看到底部的“id-4”是不同的,当我把它打印到我的终端时,我已经试过解析它了 console.log(JSON.parse(结果[0]。所有_回复)) 事实
“更新介绍集所有回复=合并(JSON\u数组\u追加(角色,$,”
+JSON.stringify(appendedData)
+“),其中id2=1;”
然后当我在节点上解析数据时,它就不起作用了。
这里是插入数据的图片,底部是附加数据
但是你可以看到底部的“id-4”是不同的,当我把它打印到我的终端时,我已经试过解析它了
console.log(JSON.parse(结果[0]。所有_回复))
事实上,我试过很多东西
console.log(eval(JSON.parse(结果[0]。所有回复)))
console.log(eval(结果[0]。所有_回复))
console.log(JSON.parse(JSON.stringify(结果[0]。所有_回复)))
所以基本上,每当我附加一个新对象时,它不会让我像插入一样解析它。
对不起,我事先解释得不好
var theJSON=[
{“id”:1,
“信息”:{
“用户名”:“亚马逊”,
“消息”:“jeff bezox.”,
“喜欢”:222,
“创建时间”:ers
}
},
{“id”:2,
“信息”:{
“用户名”:“facebook”,
“信息”:“我知道你的身体”,
“喜欢”:92,
“创建时间”:ers
}
},
{“id”:3,
“信息”:{
“用户名”:“fortnite”,
“留言”:“孩子们爱我lol”,
“喜欢”:12,
“创建时间”:ers
}
}]
var appeeddata={“id”:1,
“信息”:{
“用户名”:“亚马逊”,
“消息”:“jeff bezox.”,
“喜欢”:222,
“创建时间”:ers
}
}
就MySQL而言,您是在JSON数组中添加一个字符串
要让它将JSON解释为JSON,您需要强制转换它
比如说
let query=`更新介绍
设置所有回复=合并(
JSON_ARRAY_APPEND(角色,“$”,将(“${JSON.stringify(appendedData)}”转换为JSON)),
JSON_数组(空)
)其中id2=1`
演示~
看
仅供参考,在回答之前,我对这个话题一无所知,在MySQL手册中找到了我需要的一切。这是一个非常好的资源,非常值得一读。欢迎来到Stack Overflow!请阅读,环顾四周,阅读,特别是邮政编码,数据,错误信息,标记等,作为文本,而不是作为文本图片。原因:我发布了代码和数据,没有任何真正的“错误”,只是没有做我需要做的事情,或者我的代码不正确。@vector17如果没有文本格式的数据,很难测试脚本。我们不会费心自己打字。例如,什么是
所有回复
——它不在您发布的JavaScript中。还有为什么要评估?@vector17-请重新阅读我上面的评论:“发布…数据…作为文本,而不是文本的图片。”对不起,我添加了数据。我误解了你的意思。你的查询中有一些语法错误,我似乎找不到位置。错误到底说明了什么?添加console.log(查询)
以查看它的实际外观。最后,确保您使用的是一个而不是一个常规的stringlet查询=updateintroductions SET all_repress=COALESCE(JSON_ARRAY_APPEND(all_repress,'$),CAST('${JSON.stringify(appendedData)}')、JSON_ARRAY(null)),其中id2=1
错误:ER_PARSE_错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获取正确的语法,将near')用作JSON),JSON_ARRAY(null)),其中第1oh行的id2=1',抱歉,请稍候。