问题描述
我需要将一些现有的json对象组合成一个新的json对象。使用语法:
现有的json对象被包裹在一组额外的双引号中,并且嵌入的双引号被转义。没有重建json对象 (如在第五个输出),我怎么能做到这一点?
Thanx,D
json3 := json_object('json1' value json1, 'json2' value json2); 现有的json对象被包裹在一组额外的双引号中,并且嵌入的双引号被转义。没有重建json对象 (如在第五个输出),我怎么能做到这一点?
Thanx,D
专家解答
使用格式json子句。或者如果你在18c上,你可以使用treat ( ... as json ):
declare
json1 varchar2(200);
json2 varchar2(200);
json3 varchar2(200);
begin
json1 := json_object('1' value 1, '2' value 2, '3' value 3);
DBMS_OUTPUT.put_line (json1);
json2 := json_object('state' value 'AZ', 'car' value 'P1', 'pet' value 'Dog');
DBMS_OUTPUT.put_line (json2);
select json_object(
'json1' value json1 format json,
'json2' value json2 format json
)
into json3
from dual;
DBMS_OUTPUT.put_line (json3);
select json_object (
'json1' value treat ( json1 as json ),
'json2' value treat ( json2 as json )
)
into json3
from dual;
DBMS_OUTPUT.put_line (json3);
end;
/
{"1":1,"2":2,"3":3}
{"state":"AZ","car":"P1","pet":"Dog"}
{"json1":{"1":1,"2":2,"3":3},"json2":{"state":"AZ","car":"P1","pet":"Dog"}}
{"json1":{"1":1,"2":2,"3":3},"json2":{"state":"AZ","car":"P1","pet":"Dog"}} 文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




