SQLite json_set() 函数

SQLite json_set() 函数在一个 JSON 文档中插入或更新数据并返回新的 JSON 文档。

json_set() 语法

这里是 SQLite json_set() 的语法:

json_set(json, path, value[, path2, value2] ...)

参数

json
必需的。被修改的 JSON 文档。
path
必需的。一个有效的路径表达式。
value
必需的。新的数据。

返回值

json_set() 函数在一个 JSON 文档中插入或更新数据并返回新的 JSON 文档。。您可以提供多对 path-value 参数,以便一次替换多个数据。

如果 JSON 文档中不存在指定的路径,json_set() 函数会插入新的数据。

如果 JSON 文档中存在指定的路径,json_set() 函数会更新新的数据。

如果参数 json 不是有效的 JSON 文档,SQLite 将会给出错误。您可以使用 json_valid() 验证 JSON 文档的有效性。

json_set() 示例

在 JSON 数组中设置

让我们将数组 [1, [2, 3]] 的第一个元素和第三个元素设置为新值:

SELECT json_set('[1, [2, 3]]', '$[0]', 0, '$[2]', 6);
json_set('[1, [2, 3]]', '$[0]', 0, '$[2]', 6)
---------------------------------------------
[0,[2,3],6]

这里,数组的第一个元素替换为 0,并且数组中插入了值为 6 的第三个元素。

在 JSON 对象中设置

让我们通过以下语句修改 JSON 对象 {"x": 1, "y": 1}:

SELECT json_set('{"x": 1, "y": 1}', '$.y', 2, '$.z', 3);
json_set('{"x": 1, "y": 1}', '$.y', 2, '$.z', 3)
------------------------------------------------
{"x":1,"y":2,"z":3}