MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Mysql笔试题-解析json字符串、json数组

2025-05-08 18:49 huorong 精选文章 11 ℃ 0 评论

JSON_EXTRACT函数用于从JSON文档中提取一个或多个值。

基本语法

JSON_EXTRACT函数的基本语法如下:

JSON_EXTRACT(json_doc, path [, path] ...)
  • json_doc:要从中提取值的JSON文档。
  • path:一个或多个路径表达式,用于指定要提取的值的位置。路径表达式以$开头,表示JSON文档的根。路径表达式可以使用点.访问对象属性,使用方括号[]访问数组元素,并且可以组合使用点和方括号访问嵌套结构。

路径表达式

路径表达式使用类似于JavaScript的对象和数组访问语法:

  • 对象属性:使用点.访问,例如$.name。
  • 数组元素:使用方括号[]访问,例如$。
  • 嵌套结构:可以组合使用点和方括号,例如$.address.street或$.items.name

解析json字符串

SELECT JSON_EXTRACT (content, '$.object.item.id') ; -- 1542348252537
 
SELECT JSON_EXTRACT(JSON_EXTRACT(JSON_EXTRACT (content, '$.object'),'$.item'),'$.id') ; -- 1542348252537
 
SELECT JSON_EXTRACT (content, '$object$item$id') ; -- ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 1.
 
SELECT JSON_EXTRACT(JSON_EXTRACT(JSON_EXTRACT (content, '$object'),'$item'),'$id') ; -- ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 1.

解析json数组

SELECT json_extract(json_extract(json_extract(
'{
     "object": {
         "items": [{
                 "type": "image",
                 "id": 1542348252537
             },
             {
                 "type": "image",
                 "id": 1542348263477
             }]
         }
 }'
, '$.object'),'$.items'), '$[0].id'); -- 1542348252537
 
 
SELECT json_extract(json_extract(
'{
     "object": {
         "items": [{
                 "type": "image",
                 "id": 1542348252537
             },
             {
                 "type": "image",
                 "id": 1542348263477
             }]
         }
 }'
, '$.object.items'), '$[0].id'); -- 1542348252537
 
 
SELECT json_extract(
'{
     "object": {
         "items": [{
                 "type": "image",
                 "id": 1542348252537
             },
             {
                 "type": "image",
                 "id": 1542348263477
             }]
         }
 }'
, '$.object.items.$[0].id'); -- NULL
 
 
SELECT json_extract(
'{
     "object": {
         "items": [{
                 "type": "image",
                 "id": 1542348252537
             },
             {
                 "type": "image",
                 "id": 1542348263477
             }]
         }
 }'
, '$.object.items.[0].id'); -- ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 15.
 
 
SELECT json_extract(
'{
     "object": {
         "items": [{
                 "type": "image",
                 "id": 1542348252537
             },
             {
                 "type": "image",
                 "id": 1542348263477
             }]
         }
 }'
, '$.object.items[0].id'); -- 1542348252537

end

Tags:jsonpath解析json

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言