如何使用oracle的apex_json从返回的JSON对象中获取odata.nextLink

时间:2018-03-14 20:20:29

标签: json oracle oracle-apex

我正在从odata服务中检索数据。响应包含一个用于加载更多数据的链接,即我需要检索的odata.nextLink以加载更多数据。我如何使用oracle的apex_json做到这一点? 服务器的响应是这样的:

/usr/local/Cellar/bash/4.4.19/bin/bash

通常我会解析数据然后检索像{ "odata.metadata":"http://localhost:60497/odata/$metadata#tables","value":[ {"id":001,"name":"abc" } . . ], "odata.nextLink":"http://localhost:60497/odata/tables?$skip=10" } 这样的信息,但因为它包含一个不起作用的点。

1 个答案:

答案 0 :(得分:0)

在这种情况下:

apex_json.get_varchar2('odata.nextLink');

它正在考虑将nextLink作为odata的值。

DECLARE

v_json APEX_JSON.T_VALUES;
v_str_json VARCHAR2(4000);
next_link VARCHAR2(4000);

BEGIN


v_str_json := '{
  "odata" : {"nextLink" : "mylink"},
  "odata.metadata":"http://localhost:60497/odata/$metadata#tables","value":[
    {"id":001,"name":"abc" }
  ],
"odata.nextLink":"http://localhost:60497/odata/tables?$skip=10"
}
}';

APEX_JSON.PARSE(v_json, v_str_json);

next_link := APEX_JSON.GET_VARCHAR2(p_path => 'odata.nextLink', p_values => v_json);

dbms_output.put_line(next_link);

END;

>> OUTPUT: mylink
  • 我不知道如何说“odata.nextLink”按字面解释;而不是一条道路。

如果没有人知道:

1 - 或停止发送“odata”。在每个属性的名称的开头;

2 - 或使用替换删除。