我正在与PLJSON和ORACLE合作,我有一个这样的JSON
{
"DATA": {
"FROM_DATA": [
{
"COL": "",
"ROW": "",
"GET_DATA": [{"0":"df"}],
"SAVE_DATE": [{"2":"ar"}]
}
]
}
}我可以解析FROM_DATA并获得COL和ROW值,但是我不能解析GET_DATA和SAVE_DATA数组。
这是我的代码:
objet_json :=json(i_json.get('DATA'));
JSONDATA:= json_list(objet_json.get('FROM_DATA'));
JSONGETDATA:= json_list(objet_json .get('GET_DATA')); (1)
JSONSAVEDATA:= json_list(objet_json .get('SAVE_DATE')); (2)但我在(1)和(2)上得到了一个错误:
ora-30625 method dispatch on null self argument is disallowed发布于 2019-11-25 18:06:18
我认为你必须遍历元素:
objet_json := json(i_json.get('DATA'));
JSONDATA := json_list(objet_json.get('FROM_DATA'));
FOR i IN JSONDATA.FIRST..JSONDATA.LAST LOOP
JSONGETDATA := json_list(JSONDATA(i).get('GET_DATA'));
JSONSAVEDATA := json_list(JSONDATA(i).get('SAVE_DATE'));
END LOOP;也许你必须添加一些额外的构造函数调用:
objet_json := json(i_json.get('DATA'));
JSONDATA := json_list(objet_json.get('FROM_DATA'));
FOR i IN JSONDATA.FIRST..JSONDATA.LAST LOOP
JSONGETDATA := json_list(json(JSONDATA(i)).get('GET_DATA'));
JSONSAVEDATA := json_list(json(JSONDATA(i)).get('SAVE_DATE'));
END LOOP;https://stackoverflow.com/questions/59028932
复制相似问题