首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pljson & plsql获取json

使用pljson & plsql获取json
EN

Stack Overflow用户
提问于 2015-07-13 05:47:41
回答 1查看 2.8K关注 0票数 0

我正在尝试使用pljson从下面的json中删除一些列表

代码语言:javascript
复制
my_json := json('{"Order": 
{"no": 1, "batch": 2,"id": 3,"quantity": 10,
"sm_pack": [
        {
            "no": 10,
            "id": 1010,
            "quantity": 2
        },
        {
            "no": 11,
            "id": 1040,
            "quantity": 8
        }
    ],
    "sm_size": [
        { ....etc etc

但是,我不能让它起作用?我可以使用以下语法打印数据:

代码语言:javascript
复制
  v_myjson.path('Order.sm_pack').print;
  v_myjson.path('Order.sm_pack[1].no').print;

但是,我如何才能把所有这些不同的列表加到变量中,以供进一步处理。我尝试了不同版本的"v_list := json_list“(my_json.get(‘Order.sm_pack’)) . my_json.get('sm_pack').无论我尝试什么”空自我“,我似乎都变得盲目了。

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 09:42:03

打印json列表和对象不同于将它们分配给一些变量来操作它们。我会尝试透过你的例子回答你的问题如下:

代码语言:javascript
复制
DECLARE
    obj json := json();
    obj_1 json := json();
    arr json_list := json_list();
    val NUMBER;
BEGIN
/*Create your object*/
    obj := json('{"Order":{"no":1,"batch":2,"id":3,"quantity":10,"sm_pack":[{"no":10,"id":1010,"quantity":2},{"no":11,"id":1040,"quantity":8}],"sm_size":[{"no":10,"id":1010,"quantity":2},{"no":11,"id":1040,"quantity":8}]}}');

/*Assign object*/
    obj_1 :=json(obj.get('Order'));

/*Assign list from within the object*/
    arr := json_list(obj_1.get('sm_pack'));
    arr.print;
    --or
    arr := json_list(json(obj.get('Order')).get('sm_pack'));
    arr.print;

/*Get object value from within list*/
    val := json_ext.get_number(json(arr.get(2)), 'id');
    DBMS_OUTPUT.PUT_LINE(VAL);

END;
/

注意,我使用get_number函数作为没有单引号的值,否则,我将使用get_string

希望这能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31376141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档