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値は、指定された位置の前に挿入されます。 デフォルト値です。
m ≧ nの場合、JSON値が配列に追加されます。
m < -nの場合、JSON値は配列の先頭に追加されます。
-n ≤ m < nの場合、JSON値はinsert_afterの値に基づいた位置に挿入されます。
入力パラメーターに配列が含まれていない場合、JSON値はデフォルトで最後に挿入されます。
説明入力パラメーターに配列が含まれている場合、JSON値は次のルールに基づいて配列に挿入されます。 ルールでは、nは配列の長さを示し、mは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]} | +-----+