json_array_contains(json, value) → boolean
确定json中是否存在值(包含JSON数组的字符串)
- SELECT json_array_contains(‘[1, 2, 3]’, 2);
json_array_get(json_array, index) → varchar
将指定index处的元素返回到json数组中,index从0开始计数
- SELECT json_array_get(‘[“a”, “b”, “c”]’, 0); – ‘a’ SELECT json_array_get(‘[“a”, “b”, “c”]’, 1); – ‘b’
此函数还支持通过负的index从数组末尾读取元素索引
- SELECT json_array_get(‘[“c”, “b”, “a”]’, -1); – ‘a’ SELECT json_array_get(‘[“c”, “b”, “a”]’, -2); – ‘b’
如果指定索引处的元素不存在,则函数返回null:
- SELECT json_array_get(‘[]’, 0); – null SELECT json_array_get(‘[“a”, “b”, “c”]’, 10); – null SELECT json_array_get(‘[“c”, “b”, “a”]’, -10); – null
json_array_length(json) → bigint
返回json的数组长度(包含JSON数组的字符串)
- SELECT json_array_length(‘[1, 2, 3]’);
json_extract(json, json_path) → json
评估json上的JSONPath表达式json_path(包含JSON的字符串),并将结果作为JSON字符串返回:
- SELECT json_extract(json, ‘$.store.book’);
json_extract_scalar(json, json_path) → varchar
和json_extract()类似,但返回结果值作为一个字符串(而不是编码为JSON)。 json_path引用的值必须是scalar(boolean,number or string):
- SELECT json_extract_scalar(‘[1, 2, 3]’, ‘$[2]’); SELECT json_extract_scalar(json, ‘$.store.book[0].author’);
json_format(json) → varchar
将json作为字符串返回
- SELECT json_format(JSON ‘[1, 2, 3]’); – ‘[1,2,3]’ SELECT json_format(JSON ‘“a”’); – ‘“a”’
json_parse(string) → json
解析字符串作为json
- SELECT json_parse(‘[1, 2, 3]’); – JSON ‘[1,2,3]’ SELECT json_parse(‘“a”’); – JSON ‘“a”’
json_size(json, json_path) → bigint
跟json_extract()一样,但返回size的大小。对于对象或数组,大小是成员数,scalar 的大小为零:
- SELECT json_size(‘{“x”: {“a”: 1, “b”: 2}}’, ‘$.x’); – 2 SELECT json_size(‘{“x”: [1, 2, 3]}’, ‘$.x’); – 3 SELECT json_size(‘{“x”: {“a”: 1, “b”: 2}}’, ‘$.x.a’); – 0