select GET_JSON_OBJECT(name_tmp,'$.val') as val ,GET_JSON_OBJECT(name_tmp,'$.area') as area ,GET_JSON_OBJECT(name_tmp,'$.setVal') as setVal ,GET_JSON_OBJECT(name_tmp,'$.isExceed') as isExceed from ( -- 删除前后的中括号并修改分隔符 select regexp_replace(regexp_replace(regexp_replace(json_str,'^\[',''),'\]$',''),'},\{','}|{') as json_str1 from ( select '[{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":1,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":6,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":6,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""}]' as json_str ) t1 ) t2 lateral view explode(split(json_str1,'\|')) b AS name_tmp ; +------------+------------+------------+------------+ | val | area | setval | isexceed | +------------+------------+------------+------------+ | 5 | 测区1 | | false | | 7 | 测区1 | | false | | 7 | 测区1 | | false | | 1 | 测区1 | | false | | 5 | 测区1 | | false | | 7 | 测区1 | | false | | 5 | 测区1 | | false | | 6 | 测区1 | | false | | 5 | 测区1 | | false | | 5 | 测区1 | | false | | 5 | 测区1 | | false | | 6 | 测区1 | | false | +------------+------------+------------+------------+