SQLite json_object() 函数使用指南
SQLite json_object()
函数返回一个包含了由参数指定的所有键值对的 JSON 对象。
json_object()
语法
这里是 SQLite json_object()
的语法:
json_object(key, value[, key2, value2, ...])
参数
key
- 必需的。对象中的键。
value
- 必需的。对象中的
key
的值。
返回值
json_object()
函数评估参数中的所有的键值对,并返回一个包含了所有键值对的 JSON 对象。
由于 JSON 对象中的所有键为字符串,因此 json_object()
会将不是字符串类型的 key
转为字符串类型。为了保证程序的稳定性,我们一般使用字符串类型的 key
.
如果参数中出现了重复的 key
, json_object()
会将所有的 key
都保留在 JSON 对象中。这是一个错误。
json_object()
示例
这里列出了几个常见的 json_object()
示例。
示例 1
SELECT json_object('name', 'Jim', 'age', 20);
json_object('name', 'Jim', 'age', 20)
-------------------------------------
{"name":"Jim","age":20}
这里, json_object()
返回的 JSON 对象中由两个成员: name
和 age
。其中 name
的值为 'Jim'
, age
的值为 20
。
重复的键
如果 json_object()
的参数中出现了重复的键值对,SQLite json_object()
会保留所有的键值对。这是一个错误。
SELECT json_object('name', 'Jim', 'age', 20, 'name', 'Tim');
json_object('name', 'Jim', 'age', 20, 'name', 'Tim')
----------------------------------------------------
{"name":"Jim","age":20,"name":"Tim"}
包含复杂的对象
复杂的 JSON 对象可以存储更多的信息。
SELECT json_object(
'name',
'Tim',
'age',
20,
'friend',
json_object('name', 'Jim', 'age', 20),
'hobby',
json_array('games', 'sports')
);
json_object(
------------------------------------------------------------
{"name":"Tim","age":20,"friend":{"name":"Jim","age":20},"hob
by":["games","sports"]}
这里, 我们创建了如下 JSON 对象:
{
"age": 20,
"name": "Tim",
"hobby": ["games", "sports"],
"friend": { "age": 20, "name": "Jim" }
}
其中:
hobby
的值是个数组,通过json_array()
函数计算得出.friend
的值是个对象,通过json_object()
函数计算得出.