【问题标题】:How to parse json object with changing name using apex_json如何使用 apex_json 解析更改名称的 json 对象
【发布时间】:2021-03-15 12:56:59
【问题描述】:

我有一个应用程序向我发送这个 json 块

{
   "CHANGED VALUES":{
        "FNAME":{
            "old":"fname_old",
            "new":"fname_new"
         },
         "LNAME":{
            "old":"lname_old",
            "new":"lname_new"
         }
    }
}

如您所见,“CHANGED VALUES”下的对象的名称因更改的数据而异。

如何获得“旧”和“新”值 我尝试了 apex_json.get_varchar2 但它需要一个对象路径,如果对象名称动态更改,则很难对其进行编码。

【问题讨论】:

    标签: oracle oracle-apex


    【解决方案1】:

    您可以提取对象的名称,例如

    SQL> set serverout on
    SQL> declare
      2   json varchar2(1000) :=
      3  '{
      4     "CHANGEDVALUES":{
      5          "FNAME":{
      6              "old":"fname_old",
      7              "new":"fname_new"
      8           },
      9           "LNAME":{
     10              "old":"lname_old",
     11              "new":"lname_new"
     12           }
     13      }
     14  }';
     15
     16    l_elem   wwv_flow_t_varchar2;
     17  begin
     18    apex_json.parse(json);
     19    l_elem := apex_json.get_members(p_path=>'CHANGEDVALUES');
     20    for i in 1 .. l_elem.count loop
     21      dbms_output.put_line('member name       : ' || l_elem(i));
     22    end loop;
     23  end;
     24  /
    member name       : FNAME
    member name       : LNAME
    
    PL/SQL procedure successfully completed.
    

    一旦你有了它,你就可以使用标准的 JSON 表达式来遵循旧/新值等路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2017-12-25
      • 2015-01-20
      • 2013-08-13
      相关资源
      最近更新 更多