开发者社区> 问答> 正文

JSON函数是什么?


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

展开
收起
nicenelly 2017-10-31 14:24:20 2527 0
0 条回答
写回答
取消 提交回答
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载