我正在从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"
}
这样的信息,但因为它包含一个不起作用的点。
答案 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
如果没有人知道:
1 - 或停止发送“odata”。在每个属性的名称的开头;
2 - 或使用替换删除。