SQLite json_replace() 函数使用指南
SQLite json_replace() 函数在一个 JSON 文档中替换已存在的数据并返回新的 JSON 文档。
json_replace() 语法
这里是 SQLite json_replace() 的语法:
json_replace(json, path, value[, path2, value2] ...)
参数
json- 必需的。被修改的 JSON 文档。
path- 必需的。一个有效的路径表达式。
value- 必需的。新的数据。
返回值
json_replace() 函数在一个 JSON 文档中替换已存在的数据并返回新的 JSON 文档。您可以提供多对 path-value 参数,以便一次替换多个数据。
json_replace() 函数只能替换已经存在的数据。如果 JSON 文档中不存在指定的路径,则不会插入数据。
如果参数 json 不是有效的 JSON 文档,SQLite 将会给出错误。您可以使用 json_valid() 验证 JSON 文档的有效性。
json_replace() 示例
在 JSON 数组中替换
让我们将数组 [1, [2, 3]] 的第一个元素和第三个元素替换为新值:
SELECT json_replace('[1, [2, 3]]', '$[0]', 0, '$[2]', 6);
json_replace('[1, [2, 3]]', '$[0]', 0, '$[2]', 6)
-------------------------------------------------
[0,[2,3]]这里,我们想要把数组的将第一个元素替换为 0,将数组的第三个元素替换为 6。
我们发现,数组的第一个元素成功的被替换为了 0。然后,数组的最后没有插入 6。这是因为 json_replace() 函数只替换已经存在的数据。
在 JSON 对象中替换
让我们将对象 {"x": 1, "y": 1} 中的 y 的值修改为 2:
SELECT json_replace('{"x": 1, "y": 1}', '$.y', 2);
json_replace('{"x": 1, "y": 1}', '$.y', 2)
------------------------------------------
{"x":1,"y":2}