【发布时间】:2017-02-08 07:01:53
【问题描述】:
由于我正在写作,所以有些东西我无法理解。我有以下缩进的 JSON 对象数据。我想在 Oracle 12 的 PL/SQL 中为每个“响应”检索与“行业”和“交换”相关的值。我已经安装了在论坛 https://github.com/pljson/pljson 中找到的 JSON 包。我找到的所有解决方案都没有缩进,所以我不确定这是否是无法访问信息的原因。任何可以帮助我的建议或文章将不胜感激。 提前致谢。
这是我的 JSON 字符串
{
"response":{
"MSFT":{
"meta":{
"status":"ok"
},
"results":{
"industry":{
"data":"Software - Infrastructure",
"meta":{
"status":"ok"
}
},
"exchange":{
"data":"NASDAQ",
"meta":{
"status":"ok"
}
}
}
},
"AAPL":{
"meta":{
"status":"ok"
},
"results":{
"industry":{
"data":"Consumer Electronics",
"meta":{
"status":"ok"
}
},
"exchange":{
"data":"NASDAQ",
"meta":{
"status":"ok"
}
}
}
}
},
"meta":{
"status":"ok",
"url":"http://testdata.com/api/v3/companies/AAPL,MSFT/info/exchange,industry"
}
}
这是我在此链接的论坛基础上找到的修改后的示例代码
Parse JSON into Oracle table using PL/SQL
create or replace procedure json4(w_periode in varchar2) is
begin
DECLARE
l_param_list VARCHAR2(512);
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_response_text VARCHAR2(32767);
l_list json_list;
obj json := json();
arr json_list := json_list();
BEGIN
-- service's input parameters
-- ...set input parameters
-- UTL_HTTP.write_text(l_http_request, l_param_list);
l_response_text := '{"response": {"MSFT": {"meta": {"status": "ok"}, "results": {"industry": {"data": "Software - Infrastructure", "meta": {"status": "ok"}}, "exchange": {"data": "NASDAQ", "meta": {"status": "ok"}}}}, "AAPL": {"meta": {"status": "ok"}, "results": {"industry": {"data": "Consumer Electronics", "meta": {"status": "ok"}}, "exchange": {"data": "NASDAQ", "meta": {"status": "ok"}}}}}, "meta": {"status": "ok", "url": "http://testurl.com"}}';
/* -- get Response and obtain received value
l_http_response := UTL_HTTP.get_response(l_http_request);*/
/* UTL_HTTP.read_text(l_http_response, l_response_text);
*/
obj := json(l_response_text);
DBMS_OUTPUT.put_line(l_response_text);
/* l_list := json_list(l_response_text);*/
/*arr := json_list(obj.get('industry'));*/
end;
end json4;
【问题讨论】:
-
这是我在问题中提出的完全相同的链接,似乎只处理数组而不是对象列表。