Todos os produtos
Search
Central de documentação

MaxCompute:JSON_EXPLODE

Última atualização: Sep 22, 2026

A função JSON_EXPLODE do MaxCompute transforma cada elemento de um array ou objeto JSON em linhas separadas de registro. Este tópico traz instruções detalhadas e exemplos práticos para o uso da função JSON_EXPLODE.

Formato do comando

JSON_EXPLODE(JSON <var>)

Descrição dos parâmetros

var: Obrigatório. Aceita os tipos JSON_ARRAY ou JSON_OBJECT. Não aceita constantes JSON nem os tipos JSON STRING, JSON NUMBER, JSON BOOLEAN e NULL.

Descrição do valor de retorno

A função retorna as linhas transformadas no formato a seguir:

+-------+-------+
|  KEY  | VALUE |
|-------+-------|
  • Para um parâmetro var do tipo JSON ARRAY, a função expande a camada mais externa do array JSON em várias linhas, definindo KEY como NULL e VALUE como o elemento do array.

  • Para var JSON OBJECT, a função expande cada par KEY-VALUE da camada mais externa em duas colunas: KEY (STRING) para a chave e VALUE (JSON) para o valor.

Exemplo

Crie uma tabela chamada table_json e insira dados nela, em que a primeira linha é do tipo JSON OBJECT e a segunda linha é do tipo JSON ARRAY.

-- Create table
CREATE TABLE table_json(c1 json);
-- Insert data
INSERT INTO table_json(c1) SELECT JSON_OBJECT('a', 123,'b','hello');
INSERT INTO table_json(c1) SELECT JSON_ARRAY(1, true, 2, json'{"a":456}');
-- View table data
SELECT * FROM table_json;

A consulta retorna o seguinte resultado:

+-----------------------------+
| c1                            |
+-------------------------------+
| {"a":123,"b":"hello"}         |
| [1,true,2,{"a":456}]          |
+-------------------------------+

A função JSON_EXPLODE expande cada elemento de um array JSON ou objeto JSON em várias linhas de saída. Confira o código de exemplo:

SELECT JSON_EXPLODE(table_json.c1) FROM table_json;

O resultado da consulta é o seguinte:

+-----+------------+
| key | value      |
+-----+------------+
| \N  | 1          |
| \N  | true       |
| \N  | 2          |
| \N  | {"a":456}  |
| a   | 123        |
| b   | hello      |
+-----+------------+
Nota

Ao transformar dados JSON, os elementos dentro de uma mesma estrutura mantêm a sequência original. No entanto, a ordem de várias entradas JSON pode variar.