Поскольку я пишу, есть что-то, что я не могу понять. У меня есть следующие данные объекта JSON с отступом. Я хотел бы получить значения, связанные с «отраслью» и «обмен» для каждого «ответа» в PL/SQL в Oracle 12. Я установил пакет JSON, найденный на форуме https://github.com/pljson/pljson. Все решение, которое я нашел, не было отступом, поэтому я не уверен, является ли это причиной, потому что вы не можете получить доступ к этой информации. Любое предложение или статья, которые могли бы мне помочь, были бы весьма признательны. Спасибо заранее.PL/SQL с 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;
посмотрите на ссылку ниже http://stackoverflow.com/questions/27122612/parse-json-into-oracle-table-using-pl-sql –
Это точно такая же связь Я задал свой вопрос. Кажется, нужно обрабатывать массив, а не список объектов. –