首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析JSON列表PLSQL中的JSON列表

解析JSON列表PLSQL中的JSON列表
EN

Stack Overflow用户
提问于 2019-11-25 17:43:46
回答 1查看 1.8K关注 0票数 0

我正在与PLJSON和ORACLE合作,我有一个这样的JSON

代码语言:javascript
复制
{
  "DATA": {
    "FROM_DATA": [
      {
        "COL": "",
        "ROW": "",
        "GET_DATA": [{"0":"df"}],
        "SAVE_DATE": [{"2":"ar"}]
      }
    ]
  }
}

我可以解析FROM_DATA并获得COL和ROW值,但是我不能解析GET_DATA和SAVE_DATA数组。

这是我的代码:

代码语言:javascript
复制
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)上得到了一个错误:

代码语言:javascript
复制
ora-30625 method dispatch on null self argument is disallowed
EN

回答 1

Stack Overflow用户

发布于 2019-11-25 18:06:18

我认为你必须遍历元素:

代码语言:javascript
复制
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;

也许你必须添加一些额外的构造函数调用:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59028932

复制
相关文章

相似问题

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