Tous les produits
Search
Centre de documentation

MaxCompute:JSON_EXPLODE

Dernière mise à jour :Sep 22, 2026

La fonction MaxCompute JSON_EXPLODE permet de développer chaque élément d'un tableau ou d'un objet JSON en plusieurs lignes. Cette rubrique présente le mode d'emploi détaillé et des exemples d'utilisation de la fonction JSON_EXPLODE.

Format de la commande

JSON_EXPLODE(JSON <var>)

Description du paramètre

var : Obligatoire. Accepte les types JSON_ARRAY ou JSON_OBJECT. N'accepte pas les constantes JSON, ni les types JSON STRING, JSON NUMBER, JSON BOOLEAN et NULL.

Description de la valeur de retour

La fonction renvoie les lignes transformées au format suivant :

+-------+-------+
|  KEY  | VALUE |
|-------+-------|
  • Pour une variable var de type JSON ARRAY, le niveau le plus externe du tableau JSON est développé en plusieurs lignes de données JSON. La colonne KEY contient NULL et la colonne VALUE contient l'élément du tableau.

  • Pour une variable var de type JSON OBJECT, chaque paire clé-valeur du niveau le plus externe de l'objet JSON est développée en lignes comportant deux colonnes : une colonne KEY de type STRING contenant la clé de l'objet JSON, et une colonne VALUE de type JSON contenant la valeur de l'objet JSON.

Exemple

Créez une table nommée table_json et insérez-y des données. La première ligne est de type objet JSON et la seconde de type tableau JSON.

-- 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 requête renvoie le résultat suivant :

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

La fonction JSON_EXPLODE développe chaque élément d'un tableau ou d'un objet JSON en plusieurs lignes de sortie. Voici un exemple de code :

SELECT JSON_EXPLODE(table_json.c1) FROM table_json;

La requête renvoie le résultat suivant :

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

Lors de la transformation des données JSON, les éléments d'une même structure JSON conservent leur ordre d'origine. Toutefois, l'ordre des différentes entrées JSON peut varier.