在 PL SQL 中解析 JSON 数组 APEX_JSON

Posted

技术标签:

【中文标题】在 PL SQL 中解析 JSON 数组 APEX_JSON【英文标题】:Parse JSON array APEX_JSON in PL SQL 【发布时间】:2020-02-16 07:05:52 【问题描述】:

我有以下 JSON 对象 -


  "items": [
    
      "tableName": "contacts",
      "count": 1,
      "columnNames": [
        "id"
      ],
      "rows": [
        [
          "45"
        ]
      ]
    
  ],
  "links": [
    
      "rel": "self",

    ,
    
      "rel": "describedby",

    
  ]

我正在尝试从行中提取值 - 我需要值 45。

我尝试使用 -

进行提取
row_id := apex_json.get_number ('rows[%d]', 1);

我怎样才能提取它? 提前致谢。

【问题讨论】:

【参考方案1】:

这是一个例子:

declare

  l_json_val apex_json.t_values;
  l_clob     clob;
  l_row_val  varchar2(255);

begin

  l_clob := q'-
    
      "items": [
        
          "tableName": "contacts",
          "count": 1,
          "columnNames": [
            "id"
          ],
          "rows": [
            [
              "45"
            ]
          ]
        
      ],
      "links": [
        
          "rel": "self",

        ,
        
          "rel": "describedby",

        
      ]
    
  -';

  apex_json.parse(p_values => l_json_val, p_source => l_clob, p_strict => false); 

  l_row_val := apex_json.get_varchar2(p_path => 'items[1].rows[1][1]', p_values => l_json_val);

  dbms_output.put_line(l_row_val);

end;

请注意,带有 apex_json 的路径表达式使用 1 基数组索引,而不是 0。

【讨论】:

以上是关于在 PL SQL 中解析 JSON 数组 APEX_JSON的主要内容,如果未能解决你的问题,请参考以下文章

运行时解析 PL/SQL 的 Oracle Apex Cards 视图

ORACLE apex - 使用 PL/SQL 循环通过复选框项目

如何在 oracle apex 中将 Content-Type=application/xml 用于 pl/sql 块

在 Oracle APEX PL/SQL 中传递变量

Oracle PL/SQL 数组的索引是从 0 还是从 1?

Oracle Apex:PL/SQL 块中的 Javascript 代码