Todos los productos
Search
Centro de documentos

MaxCompute:JSON_EXPLODE

Última actualización: Sep 22, 2026

La función JSON_EXPLODE de MaxCompute expande cada elemento de un arreglo JSON o de un objeto JSON en varias filas de registros. En este tema se detallan las instrucciones de uso y los ejemplos de la función JSON_EXPLODE.

Formato del comando

JSON_EXPLODE(JSON <var>)

Descripción de parámetros

var: obligatorio. Admite los tipos JSON_ARRAY o JSON_OBJECT. No admite constantes JSON ni los tipos JSON STRING, JSON NUMBER, JSON BOOLEAN y NULL.

Descripción del valor devuelto

La función devuelve las filas transformadas con el siguiente formato:

+-------+-------+
|  KEY  | VALUE |
|-------+-------|
  • Si var es de tipo JSON ARRAY, el nivel más externo del arreglo se expande en varias filas de datos JSON. La columna KEY queda como NULL y VALUE contiene el elemento del arreglo.

  • Si var es de tipo JSON OBJECT, cada par clave-valor del nivel más externo se expande en filas de dos columnas. La columna KEY, de tipo STRING, corresponde a la clave del objeto JSON. La columna VALUE, de tipo JSON, corresponde al valor del objeto JSON.

Ejemplo

Cree una tabla llamada table_json e inserte datos en ella. La primera fila debe ser de tipo JSON OBJECT y la segunda de 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;

La consulta devuelve el siguiente resultado:

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

La función JSON_EXPLODE expande cada elemento de un arreglo u objeto JSON en varias filas de salida. A continuación se muestra un ejemplo de código:

SELECT JSON_EXPLODE(table_json.c1) FROM table_json;

La consulta devuelve el siguiente resultado:

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

Al transformar datos JSON, los elementos dentro de un mismo conjunto conservan su secuencia original. Sin embargo, el orden entre varios conjuntos de datos JSON puede variar.