简介
在 SQLite 版本 3.38.0 (2022-02-22) 之前,JSON 函数是一个扩展,需要另外编译。本 3.38.0 之后,JSON 函数和运算符默认内置于 SQLite 。
SQLite将JSON存储为普通文本,SQLite(目前)不支持JSON的二进制编码。
默认情况下,SQLite 支持十五个函数和两个运算符来处理 JSON 值
有15个标量函数和运算符。
- json(json)
- json_array(value1,value2,...)
- json_array_length(json) / json_array_length(json,path)
- json_extract(json,path,...)
- json -> path
- json ->> path
- json_insert(json,path,value,...)
- json_object(label1,value1,...)
- json_patch(json1,json2)
- json_remove(json,path,...)
- json_replace(json,path,value,...)
- json_set(json,path,value,...)
- json_type(json) / json_type(json,path)
- json_valid(json)
- json_quote(value)
有两个聚合SQL函数。
- json_group_array(value)
- json_group_object(name,value)
这两个表值函数是:
- json_each(json) / json_each(json,path)
- json_tree(json) / json_tree(json,path)
JSON参数
对于接受 JSON 作为其第一个参数的函数,该参数可以是 JSON 对象、数组、数字、字符串或 null。
SQLite 数值和 NULL 值分别被解释为 JSON 数字和空值。
SQLite 文本值可以理解为 JSON 对象、数组或字符串。
如果将不是格式正确的 JSON 对象、数组或字符串的 SQLite 文本值传递给 JSON 函数,该函数会抛出错误。
PATH参数
对于接受PATH参数的函数,PATH必须是正确格式,否则函数将抛出一个错误。
格式正确的 PATH 是一个文本值,它正好以一个 '