Tous les produits
Search
Centre de documentation

MaxCompute:TO_JSON

Dernière mise à jour :Sep 17, 2026

Convertit le type complexe spécifié expr en une chaîne au format JSON.

Syntaxe

STRING TO_JSON(<expr>)

Paramètres

expr : Obligatoire. Expression d'un type de données complexe. Le type de données doit être ARRAY, MAP ou STRUCT.

Si l'entrée est de type STRUCT (struct<key1:value1, key2:value2) :

  • Lors de la conversion du type STRUCT en chaîne JSON, toutes les clés sont converties en minuscules.

  • Si une value est NULL, le groupe de données contenant cette value est exclu de la sortie. Par exemple, si value2 est NULL, key2:value2 est exclu de la chaîne JSON de sortie.

  • Exécutez la commande SET odps.sql.bigquery.compatible=true; pour activer le mode compatible avec BigQuery. Dans ce mode, si une valeur est NULL, la paire clé-valeur correspondante est incluse dans la sortie. Par exemple, si value2 est NULL, key2:NULL est inclus dans la sortie.

Valeur de retour

Renvoie une chaîne au format JSON.

Exemples

  • Exemple 1 : Convertir un type complexe en chaîne JSON. Commande d'exemple :

    -- Returns {"a":1,"b":2}.
    SELECT TO_JSON(NAMED_STRUCT('a', 1, 'b', 2));
    -- Returns {"time":"26/08/2015"}.
    SELECT TO_JSON(NAMED_STRUCT('time', "26/08/2015"));
    -- Returns [{"a":1,"b":2}].
    SELECT TO_JSON(ARRAY(NAMED_STRUCT('a', 1, 'b', 2)));
    -- Returns {"a":{"b":1}}.
    SELECT TO_JSON(MAP('a', NAMED_STRUCT('b', 1)));
    -- Returns {"a":1}.
    SELECT TO_JSON(MAP('a', 1));
    -- Returns [{"a":1}].
    SELECT TO_JSON(ARRAY((MAP('a', 1))));
  • Exemple 2 : Gérer une valeur NULL dans une expression de type STRUCT. Commande d'exemple :

    -- Returns {"a":"B"}. When the STRUCT type is converted to a JSON string, all keys are converted to lowercase.
    SELECT TO_JSON(NAMED_STRUCT("A", "B"));
    -- Returns {"k2":"v2"}. The group of data that contains a NULL value is not included in the output JSON string.
    SELECT TO_JSON(NAMED_STRUCT("k1", CAST(NULL AS STRING), "k2", "v2"));
  • Exemple 3 : Convertir une expression de type STRUCT contenant une valeur NULL en mode compatible avec BigQuery. Commande d'exemple :

    -- Returns {"k1":null,"k2":"v2"}
    SET odps.sql.bigquery.compatible=true;
    SELECT TO_JSON(named_struct("k1", CAST(NULL AS STRING), "k2", "v2"));
    
    -- Returns {"id":null,"tag":null,"group":null,"success":true}
    SET odps.sql.bigquery.compatible=true;
    SELECT TO_JSON(struct(experiment_id AS id,tag  AS tag,`group`,`success`)) AS experiment_in_json
      FROM(
        SELECT CAST(NULL AS string) AS experiment_id,
        CAST(NULL AS string) AS tag,
        CAST(NULL AS string) AS `group`,
        TRUE AS `success`
    );