首页 > 数据库 > SQL > 正文

JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式

蓮花仙者
发布: 2025-06-28 14:50:02
原创
154人浏览过

使用json_extract()提取嵌套json数据时,需掌握以下要点:1.路径以$开头,对象字段用$.字段名表示,数组元素用[索引]访问;2.多层结构逐层展开路径,注意点号和括号顺序;3.字段名含特殊字符时需用双引号包裹。例如提取hobbies数组第一个元素应写为$.user.hobbies[0],处理多层嵌套时如data数组第二个对象的tags数组第二个元素写作$.data[1].tags[1],特殊字符字段如"full name"需写成$.user-info."full name"或$."user-info"."full name",建议通过在线工具验证路径准确性。

JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式

有时候解析嵌套的 JSON 数据,特别是用像 MySQL 的 JSON_EXTRACT() 这类函数时,路径写法容易搞错。其实只要掌握几个关键点,就能准确提取想要的数据。

JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式

路径表达式的基本结构:$.字段名[索引]

在使用 JSON_EXTRACT() 时,路径是以 $ 开头的,表示整个 JSON 的根。如果数据是对象(键值对),就用 $.字段名;如果是数组,就要用 [索引] 来访问具体元素。

JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式

举个例子,假设你有如下 JSON:

{
  "user": {
    "name": "张三",
    "hobbies": ["篮球", "读书", "编程"]
  }
}
登录后复制

要提取 hobbies 数组里的第一个爱好,路径应该是:

JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式
SELECT JSON_EXTRACT(json_column, '$.user.hobbies[0]');
登录后复制

注意几点:

  • 字段名之间用英文点号连接
  • 数组索引要用方括号包裹,且从 0 开始计数
  • 不管字段名是否带下划线或大小写,都要原样写出来

多层数组嵌套:逐层展开写路径

如果遇到多层嵌套数组的情况,比如下面这个结构:

{
  "data": [
    {
      "id": 1,
      "tags": ["a", "b"]
    },
    {
      "id": 2,
      "tags": ["c", "d"]
    }
  ]
}
登录后复制

想提取第二个 data 元素下的 tags 第二个标签,路径就是:

'$.data[1].tags[1]'
登录后复制

说明:

  • data[1] 是数组中的第二个对象(索引从 0 开始)
  • 再进入 .tags[1] 就是那个对象中的第二个标签

这种时候特别要注意括号和点号的位置,顺序错了就取不到数据。


特殊字符处理:字段名含特殊符号怎么办?

有些 JSON 中字段名可能包含空格、连字符 - 或其他非字母字符,例如:

{
  "user-info": {
    "full name": "李四"
  }
}
登录后复制

这时候路径要加双引号包裹字段名:

'$.user-info."full name"'
登录后复制

或者也可以统一都用引号形式:

'$."user-info"."full name"'
登录后复制

这样即使字段名中包含特殊字符也不会出错。


基本上就这些常用情况。路径写法虽然看起来简单,但实际操作中很容易因为少一个点、错一个括号导致结果为空。建议每次写完可以先用在线 JSON 提取工具验证一下路径是否正确,再放到 SQL 里执行。

以上就是JSON_EXTRACT()解析嵌套JSON:路径符号$.[]的正确书写格式的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号