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

Posted

技术标签:

【中文标题】如何将 JSON_INSERT 与字符串中的键一起使用?【英文标题】:How to use JSON_INSERT with the key that is in string? 【发布时间】:2021-12-31 15:06:16 【问题描述】:

我没有找到在键是字符串的 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 键“计算机主页”有空间,即使有空格,我如何插入它?

【问题讨论】:

【参考方案1】:

这是一个演示:

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

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

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

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

【讨论】:

以上是关于如何将 JSON_INSERT 与字符串中的键一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在胶合时分离(带有空格)字符串,使用数组中的键来检查它是否粘合?

mysql中,通过json_insert函数向json字段插入键值?json_insert函数的使用?

如何将字符串转换为符号以用作 Lisp“assoc”函数中的键?

如何在将连字符作为值之一的同时对字符串数据类型中的键的列表中的值求和

如何在 JAVA 中使用 ResourceBundle 将匈牙利字符作为属性文件中的键?

如何将 GeoFire 坐标与 Firebase 数据库中的其他项目一起保存?