Tous les produits
Search
Centre de documentation

MaxCompute:JSON_INSERT

Dernière mise à jour :Aug 10, 2026

Insère une valeur JSON à l'emplacement spécifié dans un objet JSON.

Syntaxe

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

Paramètres

  • input : obligatoire. Contenu JSON à modifier. Types pris en charge : JSON ARRAY et JSON OBJECT.

  • path : obligatoire. Emplacement d'insertion du contenu JSON.

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

  • insert_after : obligatoire.

    • Si le paramètre input contient un tableau et que la valeur spécifiée par path existe déjà, ce paramètre détermine la position d'insertion de la nouvelle valeur :

      • true : insère la nouvelle valeur après la position spécifiée.

      • false (valeur par défaut) : insère la nouvelle valeur avant la position spécifiée.

    • Remarque

      Si le paramètre input contient un tableau, les règles d'insertion sont les suivantes. Soit n la longueur du tableau dans input et m la position d'insertion spécifiée :

      • Si m >= n, ajoute la valeur value à la fin du tableau.

      • Si m < -n, ajoute la valeur value au début du tableau.

      • Si -n <= m < n, la valeur de insert_after détermine la position d'ajout de la valeur value.

    • Si le paramètre input ne contient pas de tableau, la valeur est insérée par défaut à la fin.

Valeur de retour

Objet JSON modifié.

Exemples

  • Exemple 1 : Insérer une nouvelle valeur à un emplacement spécifique.

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

    Résultat :

    +-----+
    | _c0 |
    +-----+
    | {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}} |
    +-----+
  • Exemple 2 : Insérer des données avant une valeur spécifiée dans un tableau.

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

    Résultat :

    +-----+
    | _c0 |
    +-----+
    | {"f1":[10,0,1,2]} |
    +-----+
  • Exemple 3 : Insérer des données après une valeur spécifiée dans un tableau.

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

    Résultat :

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+
  • Exemple 4 : Insérer une valeur dans un tableau. Si la position d'insertion est supérieure ou égale à la longueur du tableau JSON, la valeur est insérée à la fin du tableau.

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

    Résultat :

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,1,2,4]} |
    +-----+
  • Exemple 5 : Insérer une valeur dans un tableau. Si la position d'insertion est inférieure à l'opposé de la longueur du tableau JSON, la valeur est insérée au début du tableau.

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

    Résultat :

    +-----+
    | _c0 |
    +-----+
    | {"f1":[4,0,1,2]} |
    +-----+
  • Exemple 6 : Insérer une valeur dans un tableau. Si la position d'insertion se situe entre l'opposé de la longueur du tableau (exclu) et la longueur elle-même, la valeur est insérée à la position spécifiée.

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

    Résultat :

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