如何将 JSON_INSERT 与字符串中的键一起使用?

How to use JSON_INSERT with the key that is in string?

我找不到在键为字符串的 json 中使用 JSON_INSERT 的方法:

{
 "computer": {
    "display": blue
  },
 "computer home":{}
}

这样操作:

JSON_INSERT(type, '$.computer.color', 'red');`

但不是这样的:

JSON_INSERT(type, '$.computer home.color', 'red');`

我的愿望:

{
 "computer" :{
    "display": "blue",
    "color": "red"

  },
 "computer home":{
   "color": "red"
 }
}

显然它不起作用,因为 json 键“computer home”有 space,即使有 spaces,我如何插入它?

这是一个演示:

mysql> set @j = '{
 "computer": {
    "display": "blue"
  },
 "computer home":{}
}';

(请注意,我也必须将“blue”放在双引号中;所有字符串都必须在 JSON 中以这种方式分隔)

您可以使用包含空格(或标点符号)的 JSON 键,方法是用双引号分隔它们:

mysql> select json_insert(@j, '$."computer home".color', 'red') as result;
+----------------------------------------------------------------------+
| result                                                               |
+----------------------------------------------------------------------+
| {"computer": {"display": "blue"}, "computer home": {"color": "red"}} |
+----------------------------------------------------------------------+