すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:JSON_INSERT

最終更新日:Jan 17, 2025

JSONファイルの指定された位置にJSON値を挿入します。

構文

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

Parameters

  • input: 必須です。 このパラメーターは、JSON値を挿入するJSONデータを指定します。 パラメーター値は、JSON ARRAY型またはJSON OBJECT型にすることができます。

  • path: 必須です。 このパラメーターは、JSON値を挿入する位置を指定します。

  • value: required このパラメーターは、挿入するJSON値を指定します。

  • insert_after: 必須です。

    • 入力パラメーターに配列が含まれ、pathパラメーターで指定された値が配列に存在する場合、有効な値:

      • true: 指定されたJSON値は、指定された位置の後に挿入されます。

      • false: 指定されたJSON値は、指定された位置の前に挿入されます。 デフォルト値です。

    • 説明

      入力パラメーターに配列が含まれている場合、JSON値は次のルールに基づいて配列に挿入されます。 ルールでは、nは配列の長さを示し、mはJSON値を挿入する位置を示します。

      • m ≧ nの場合、JSON値が配列に追加されます。

      • m < -nの場合、JSON値は配列の先頭に追加されます。

      • -n ≤ m < nの場合、JSON値はinsert_afterの値に基づいた位置に挿入されます。

    • 入力パラメーターに配列が含まれていない場合、JSON値はデフォルトで最後に挿入されます。

戻り値

変更されたJSONファイルが返されます。

  • 例1: 指定した位置にJSON値を挿入します。

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

    次の応答が返されます。

    +-----+
    | _c0 |
    +-----+
    | {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}} |
    +-----+
  • 例2: 配列内の特定の値の前にJSON値を挿入します。

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

    次の応答が返されます。

    +-----+
    | _c0 |
    +-----+
    | {"f1":[10,0,1,2]} |
    +-----+
  • 例3: 配列の特定の値の後にJSON値を挿入します。

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

    次の応答が返されます。

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+
  • 例4: JSON値を配列に挿入します。 pathパラメーターの値が配列の長さより大きい場合、JSON値が配列に追加されます。

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

    次の応答が返されます。

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,1,2,4]} |
    +-----+
  • 例5: 配列にJSON値を挿入します。 pathパラメーターの値が配列長の負の値より小さい場合、JSON値は配列の先頭に追加されます。

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

    次の応答が返されます。

    +-----+
    | _c0 |
    +-----+
    | {"f1":[4,0,1,2]} |
    +-----+
  • 例6: JSON値を配列に挿入します。 pathパラメーターの値が配列長の負の値以上で配列長未満の場合、JSON値が指定された位置に挿入されます。

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

    次の応答が返されます。

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