暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 将CLOB附加到Json_object_t

ASKTOM 2019-11-28
410

问题描述

我目前正在尝试在Oracle 18c数据库中生成一些REST服务,我的要求之一是将输入有效负载与响应一起发送。但是,在附加输入时,每个 “作为转义字符” 也会添加一些额外的 “/”。

示例代码:


DECLARE
    p   CLOB := '{"name": "John","age" : 29}'; --Input
    j   json_object_t := json_object_t.parse('{"Response":"Success"}'); --output
BEGIN
    j.put('INPUT', p);  --attaching input to response
    dbms_output.put_line(j.stringify); -- this has additional / in the o/p.
END;


专家解答

这是因为您要添加一个具有字符串值 “{” 名称 “:” John “,” 年龄 “: 29}” 的属性。不是JSON对象!

如果要添加对象,则需要先将字符串转换为json_object_t。然后将其添加到其他文档中:

DECLARE
    p   clob := '{"name": "John","age" : 29}'; --Input
    j   json_object_t := json_object_t.parse('{"Response":"Success"}'); --output
    j2  json_object_t := json_object_t.parse(p); 
BEGIN
    j.put('INPUT1', j2); 
    j.put('INPUT2', p);  
    dbms_output.put_line(j.stringify); -- this has additional / in the o/p.
END;
/

{
 "Response":"Success",
 "INPUT1":{"name":"John","age":29},
 "INPUT2":"{\"name\": \"John\",\"age\" : 29}"
}

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论