SQLite json_each() 函数使用指南

来源:这里教程网 时间:2026-03-25 18:13:08 作者:

SQLite

json_each()
函数遍历指定 JSON 文档,为每个直接子元素生成一行,最终返回由所有的行组成的结果集。

SQLite

json_each()
函数只遍历 JSON 对象或者数组的直接子元素,或者如果元素为原始类型,则遍历元素本身。

SQLite

json_each()
函数是一个表值函数,类似的函数有:
json_tree()

json_each()
语法

这里是 SQLite

json_each()
的语法:

json_each(json, path)

参数

json
必需的。一个 JSON 文档。
path
可选的。一个路径表达式。

返回值

SQLite

json_each()
函数返回一个具有以下列的结果集:

key
如果 JSON 为数组,则
key
列为数组的索引;如果 JSON 为对象,则
key
列为对象的成员名称;其他情况,
key
列为
NULL
value
当前元素的值。
type
当前元素的 JSON 类型。可能的值:
'null'
'true'
'false'
'integer'
'real'
'text'
'array'
'object'
。 他们与
json_type()
函数相同。
atom
如果
value
是 JSON 原始类型,
atom
存储其对应的 SQL 值;否则该列为
NULL
id
标识此行唯一性的一个整数。
parent
父元素的整数 ID。 此列永远为
NULL
fullkey
它是当前行元素的路径。
path
当前行元素的父元素的路径。

json_each()
示例

这里列出了几个常见的

json_each()
用法示例。

示例: 数组

在这个示例中,我们使用

json_each()
函数遍历一个 JSON 数组中的元素:

SELECT * FROM json_each('[1, 2, 3]');

key  value  type     atom  id  parent  fullkey  path---  -----  -------  ----  --  ------  -------  ----0    1      integer  1     1           $[0]     $1    2      integer  2     2           $[1]     $2    3      integer  3     3           $[2]     $

示例: 对象

在这个示例中,我们使用

json_each()
函数遍历一个 JSON 对象中的元素:

SELECT * FROM json_each('{"x": 1, "y": 2}');

key  value  type     atom  id  parent  fullkey  path---  -----  -------  ----  --  ------  -------  ----x    1      integer  1     2           $.x      $y    2      integer  2     4           $.y      $

示例:指定路径

在这个示例中,我们使用

json_each()
函数遍历一个 JSON 数组中的通过路径指定的元素:

SELECT * FROM json_each('[{"x": 1, "y": 2}]', '$[0]');

key  value  type     atom  id  parent  fullkey  path---  -----  -------  ----  --  ------  -------  ----x    1      integer  1     3           $[0].x   $[0]y    2      integer  2     5           $[0].y   $[0]

相关推荐

热文推荐