Tous les produits
Search
Centre de documentation

MaxCompute:JSON_INSERT

Dernière mise à jour :Sep 22, 2026

Insère une valeur JSON à une position donnée dans un document JSON.

Format de la commande

JSON json_insert(JSON <input>, ARRAY STRING <path>, JSON <value>, BOOLEAN <insert_after>);

Paramètres

  • input : Obligatoire. Contenu JSON à modifier. Ce paramètre accepte les types de données JSON ARRAY et JSON OBJECT.

  • path : Obligatoire. Chemin indiquant la position d'insertion du contenu JSON.

  • value : Obligatoire. Contenu JSON à insérer.

  • insert_after : Obligatoire.

    • Si le paramètre d'entrée contient un tableau et que le chemin pointe vers un élément existant, ce paramètre définit la position d'insertion :

      • true : Insère la nouvelle valeur après l'élément spécifié.

      • false (par défaut) : Insère la nouvelle valeur avant l'élément spécifié.

    • Remarque

      Si le paramètre input est un tableau, les règles suivantes s'appliquent lors de l'insertion de contenu JSON. Dans ces règles, n représente la longueur du tableau et m la position d'insertion spécifiée :

      • Si m >= n, la valeur est ajoutée à la fin du tableau.

      • Si m < -n, la valeur est ajoutée au début du tableau.

      • Si -n <= m < n, la position de la nouvelle valeur dépend du paramètre insert_after.

    • Si le paramètre d'entrée n'est pas un tableau, la valeur est insérée à la fin par défaut.

Valeur renvoyée

Le code JSON modifié.

Exemples

  • Exemple 1 : Insérez une nouvelle valeur à une position donnée.

    select json_insert(JSON'{"f1":1,"f2":{"t1":1,"t2":2}}', 
                       array("f2","t3"), 
                       JSON'3',
                       false
                      );

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}} |
    +-----+
  • Exemple 2 : Insérez une valeur avant un élément d'un tableau.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', false);

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[10,0,1,2]} |
    +-----+
  • Exemple 3 : Insérez une valeur après un élément d'un tableau.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', true);

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+
  • Exemple 4 : Insérez une valeur à un index situé au-delà de la fin d'un tableau.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","4"), JSON'4', false);

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,1,2,4]} |
    +-----+
  • Exemple 5 : L'insertion d'une valeur dans un tableau JSON à un index inférieur à l'opposé de la longueur du tableau place la valeur au début du tableau.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","-4"), JSON'4', false);

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[4,0,1,2]} |
    +-----+
  • Exemple 6 : Insérez une valeur dans un tableau à une position donnée si celle-ci est supérieure ou égale à l'opposé de la longueur du tableau et inférieure à cette longueur.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","1"), JSON'10', false);

    Le résultat suivant est renvoyé.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+