gpt4 book ai didi

mysql - JSON.parse 无法根据需要正常工作

转载 作者:行者123 更新时间:2023-11-29 15:22:38 25 4
gpt4 key购买 nike

我正在使用 SQL 及其 JSON 数据类型,我插入了一个数组对象并附加了新对象,但是当我使用时

"UPDATE introductions SET all_replies = COALESCE(JSON_ARRAY_APPEND(roles, '$', '"
+ JSON.stringify(appendedData)
+ "'), JSON_ARRAY(null)) WHERE id2 = 1;"

然后当我在节点上解析数据时它不起作用。这是插入数据的图片,底部是附加数据

ignore the dummy text

但是你可以在底部看到“id-4”是不同的,当将其打印到我的终端时,我已经尝试解析它

console.log(JSON.parse(results[0].all_replies))

事实上,我尝试了多种方法

console.log(eval(JSON.parse(result[0].all_replies)))
console.log(eval(result[0].all_replies))
console.log(JSON.parse(JSON.stringify(result[0].all_replies)))

所以基本上,每当我追加一个新对象时,它都不会让我像插入它一样解析它。抱歉我提前做出了糟糕的解释..

var theJSON = [
{ "id": 1,
"info": {
"username": "amazon",
"message": "jeff bezox.",
"likes": 222,
"time_created": ers
}
},
{ "id": 2,
"info": {
"username": "facebook",
"message": "ik you bod",
"likes": 92,
"time_created": ers
}
},
{ "id": 3,
"info": {
"username": "fortnite",
"message": "kids love me lol",
"likes": 12,
"time_created": ers
}
}]

var appenedData = { "id": 1,
"info": {
"username": "amazon",
"message": "jeff bezox.",
"likes": 222,
"time_created": ers
}
}

最佳答案

就 MySQL 而言,您正在将一个字符串附加到 JSON 数组中。

要让它将 JSON 解释为 JSON,您需要对其进行强制转换。

例如

let query = `UPDATE introductions
SET all_replies = COALESCE(
JSON_ARRAY_APPEND(roles, '$', CAST('${JSON.stringify(appendedData)}' AS JSON)),
JSON_ARRAY(null)
) WHERE id2 = 1`

演示 ~ https://www.db-fiddle.com/f/xnTrecnFBgiQWwuvTaAYu4/0

参见https://dev.mysql.com/doc/refman/8.0/en/json.html#json-converting-between-types

仅供引用,在回答之前我对这个主题一无所知,并在 MySQL 手册中找到了我需要的所有内容。这是一个很棒的资源,非常值得一读。

关于mysql - JSON.parse 无法根据需要正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59288580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com