MaxCompute将json数组拆分成多行

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      | 
+------------+------------+------------+------------+
原文地址:https://www.cnblogs.com/chenzechao/p/12915747.html