我正在尝试使用pljson从下面的json中删除一些列表
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但是,我不能让它起作用?我可以使用以下语法打印数据:
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').无论我尝试什么”空自我“,我似乎都变得盲目了。
问候
发布于 2015-07-13 09:42:03
打印json列表和对象不同于将它们分配给一些变量来操作它们。我会尝试透过你的例子回答你的问题如下:
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。
希望这能帮上忙!
https://stackoverflow.com/questions/31376141
复制相似问题