全部产品
阿里云办公

JSON函数

更新时间:2017-10-10 19:51:59

json_array_contains(json, value) → boolean

确定json中是否存在值(包含JSON数组的字符串)

  1. SELECT json_array_contains(‘[1, 2, 3]’, 2);

json_array_get(json_array, index) → varchar

将指定index处的元素返回到json数组中,index从0开始计数

  1. SELECT json_array_get(‘[“a”, b”, c”]’, 0); a SELECT json_array_get(‘[“a”, b”, c”]’, 1); b

此函数还支持通过负的index从数组末尾读取元素索引

  1. SELECT json_array_get(‘[“c”, b”, a”]’, -1); a SELECT json_array_get(‘[“c”, b”, a”]’, -2); b

如果指定索引处的元素不存在,则函数返回null:

  1. 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数组的字符串)

  1. SELECT json_array_length(‘[1, 2, 3]’);

json_extract(json, json_path) → json

评估json上的JSONPath表达式json_path(包含JSON的字符串),并将结果作为JSON字符串返回:

  1. SELECT json_extract(json, $.store.book’);

json_extract_scalar(json, json_path) → varchar

和json_extract()类似,但返回结果值作为一个字符串(而不是编码为JSON)。 json_path引用的值必须是scalar(boolean, number or string):

  1. SELECT json_extract_scalar(‘[1, 2, 3]’, $[2]’); SELECT json_extract_scalar(json, $.store.book[0].author’);

json_format(json) → varchar

将json作为字符串返回

  1. SELECT json_format(JSON ‘[1, 2, 3]’); ‘[1,2,3]’ SELECT json_format(JSON ‘“a”’); ‘“a”’

json_parse(string) → json

解析字符串作为json

  1. 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 的大小为零:

  1. 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