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]