JSON操作符

神通数据库支持的JSON操作符如下

操作符 描述
-> 功能实现参考 JSON_EXTRACT
->> 功能实现参考 JSON_UNQUOTE(JSON_EXTRACT())

示例

示例1:json为对象时,json_extract()和操作符对比

create table test(js json);

insert into test values('{"id":"3","name":"oscar"}');


select json_extract(js,'$.name') from test;
JSON_EXTRACT(json)      |
------------------------
"oscar"                 |
总数目:1


select js->'$.name' as name from test;
NAME(json)      |
----------------
"oscar"         |
总数目:1


select json_unquote(json_extract(js,'$.name')) from test;
JSON_UNQUOTE(text)      |
------------------------
oscar                   |
总数目:1


select js->>'$.name' as name from test;
NAME(text)      |
----------------
oscar           |
总数目:1

drop table test;

示例2:json为数组时,json_extract()和操作符对比

create table test(js json);

insert into test values('[10,"oscar",30]');


select json_extract(js,'$[1]') from test;
JSON_EXTRACT(json)      |
------------------------
"oscar"                 |
总数目:1


select js->'$[1]' as name from test;
NAME(json)      |
----------------
"oscar"         |
总数目:1


select json_unquote(json_extract(js,'$[1]')) from test;
JSON_UNQUOTE(text)      |
------------------------
oscar                   |
总数目:1


select js->>'$[1]' as name from test;
NAME(text)      |
----------------
oscar           |
总数目:1

drop table test;