在Mysql中解析嵌套的JSON格式數據是非常方便的,這里我們來看一個復雜嵌套JSON數據的解析。
{ "name": "小明", "age": 18, "hobbies": ["讀書", "游泳"], "schools": [{ "name": "清華大學", "major": "計算機科學", "grades": [88, 92, 96] }, { "name": "北京大學", "major": "經濟學", "grades": [90, 94, 98] }] }
首先,在MySQL中我們需要使用json_extract函數來解析JSON格式的數據,以下是查詢每個字段的語法:
SELECT json_extract(json_data, '$.name') AS name, --解析頂層字段 json_extract(json_data, '$.age') AS age, json_extract(json_data, '$.hobbies') AS hobbies, json_extract(json_data, '$.schools') AS schools FROM test_table --表名
接下來,我們需要解析嵌套的JSON數據。例如,我們想要查詢清華大學的成績,可以使用以下的語法:
SELECT json_extract(json_data, '$.schools[0].grades[0]') AS first_grade, json_extract(json_data, '$.schools[0].grades[1]') AS second_grade, json_extract(json_data, '$.schools[0].grades[2]') AS third_grade FROM test_table
這里值得注意的是,JSON數組是從0開始的,所以我們需要使用[0]來獲取清華大學的信息。
最后,我們可以將查詢結果展示出來:
name | age | hobbies | schools ----------------------------------------------- 小明 | 18 | ["讀書", "游泳"] | [{"name":"清華大學","major":"計算機科學","grades":[88,92,96]},{"name":"北京大學","major":"經濟學","grades":[90,94,98]}] first_grade | second_grade | third_grade ----------------------------------------- 88 | 92 | 96
以上就是使用MySQL來解析復雜嵌套JSON的方法,需要注意的是,在解析過程中需要使用正確的語法來獲取JSON的字段信息。
上一篇css自動分配寬度