admin 管理员组文章数量: 1086019
2024年4月13日发(作者:case与switch)
DM中处理JSON文本的方法
JSON是基于纯文本的轻量级数据交换格式,在web应用端有广泛的应用。在DM中JSON
数据以字符串类型储存,可以支持对于要存入的JSON数据格式的正确性检查,存储JSON
数据并提供函数对于JSON文本进行查询。下面用几个例子来说明在DM中操作JSON文
本的方法。
创建TEST1表并在TEST1表中存储JSON文本,INFO列的数据类型需要为字符类型,
可以选择varchar、varchar2、char、clob等作为储存字段的数据类型。
create table TEST1 (INFO varchar(100));
insert into TEST1 values ('{"db_name":"DM","version":8}');
select * from TEST1;
对于储存下来的JSON数据,DM提供了函数json_value和json_query对于JSON文本中
的值进行查询。现运用json_value函数查询键为db_name所对应的值。使用函数json_value
必须给定两个参数,第一个为查询表中的列名,第二个为查找值的路径表达式。在路径中
array对象和object对象必须以“$”开头。
select json_value(INFO,'$.db_name') from TEST1;
通过查询可以获取到db_name所对应的值为“DM”。除了如上例中object对象外,DM还可
以存储array对象并查询array中的值。数组的下标从0开始,利用“[下标]”的方式可以查找
到对应的值。
create table TEST2 (INFO char(100));
insert into TEST2 values ('["DAMENG",8,true,null]');
select * from TEST2;
select json_value(INFO,'$[0]') from TEST2;
对于需要储存的数据检查其是否为json文本,可以加入IS JSON条件进行判断。可以在建
表的过程中加入到检查约束中进行判断,也可以在插入数据时添加条件,对于插入的数据进
行筛选。
create table TEST3(ID int,INFO varchar(100) constraint json_check
check (INFO is json));
insert into TEST3 values (1,'{"db_name":"DM","version":8}');
符合json数据格式的值会被存储下来,而错误的格式在插入数据时不能满足IS JSON的检
查约束,会提示“违反CHECK约束[JSON_CHECK]。”
insert into TEST3 values (2,'{"db_name":"DM","version":8,????:!!!!}');
insert into TEST3 values (3,'DAMENG');
如果不添加约束,也可以在条件中筛选json格式的数据,例如在下面的示例中我们创建
TEST4表,并插入四行数据,其中两行符合json数据的合法性。
create table TEST4(ID int,INFO varchar(100));
insert into TEST4 values (1,'{"db_name":"DM","version":8}');
insert into TEST4 values
(2,'{"db_name":"DM","version":8,????:!!!!}');
insert into TEST4 values (3,'DAMENG');
insert into TEST4 values (4,'["DAMENG",8,true,null]');
而在创建TEST5表的时候在where子句中带上对于json数据的检查条件,可以仅将符合
版权声明:本文标题:DM中处理JSON文本的方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713003374a616677.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论