SQLite json_patch() 函数使用指南
SQLite json_patch() 函数将第二个 JSON 对象合并补充到原 JSON 对象上,并返回合并补充后原 JSON 对象。如果两个参数不全是 JSON 对象,则返回第二个参数。
SQLite json_patch() 函数可以用来修改 JSON 对象,比如:添加新成员、修改成员 和 删除成员。
json_patch() 语法
这里是 SQLite json_patch() 的语法:
json_patch(original_json, patch_json)
参数
original_json- 必需的。原始的 JSON 文档。
patch_json- 必需的。要修补到原始 JSON 文档上的 JSON 文档。
返回值
如果两个参数都是 JSON 对象,则 SQLite json_patch() 函数将第二个 JSON 对象 patch_json 合并补充到原 JSON 对象 original_json 上,并返回合并补充后原 JSON 对象。
否则, SQLite json_patch() 函数返回第二个参数 patch_json。
json_patch() 示例
合并 JSON 对象
要使用 json_patch() 函数向原始 JSON 对象中插入新的成员,请使用如下语句:
SELECT json_patch('{"x": 1}', '{"y": 2}');
json_patch('{"x": 1}', '{"y": 2}')
----------------------------------
{"x":1,"y":2}要使用 json_patch() 函数更新原始 JSON 对象中的成员的值,请使用如下语句:
SELECT json_patch('{"x": 1}', '{"x": 2}');
json_patch('{"x": 1}', '{"x": 2}')
----------------------------------
{"x":2}要使用 json_patch() 函数删除原始 JSON 对象中的成员,请使用如下语句:
SELECT json_patch('{"x":1,"y":2}', '{"y": null}');
json_patch('{"x":1,"y":2}', '{"y": null}')
------------------------------------------
{"x":1}您还可以同时添加、更新和删除,例如:
SELECT json_patch('{"x":1,"y":2}', '{"x":0,"y": null,"z":3}');
json_patch('{"x":1,"y":2}', '{"x":0,"y": null,"z":3}')
------------------------------------------------------
{"x":0,"z":3}非 JSON 对象
如果两个参数不全是 JSON 对象,SQLite json_patch() 函数返回第二个参数。如下:
-
json_patch()使用两个数字作为参数SELECT json_patch(1, 2);json_patch(1, 2) ---------------- 2 -
json_patch()使用一个数字和一个字符串作为参数SELECT json_patch(1, '"a"');json_patch(1, '"a"') -------------------- "a" -
json_patch()使用一个数字和一个数组作为参数SELECT json_patch(1, '[1,2]');json_patch(1, '[1,2]') ---------------------- [1,2] -
json_patch()使用两个数组作为参数SELECT json_patch('[0]', '[1,2]');json_patch('[0]', '[1,2]') -------------------------- [1,2]