If you install the latest APEX 5.0 which was released on April 15. You get access to a great API to work with JSON
I'm using it on 11.2 and have been able to crunch every single json, from simple to very complex objects with multiple arrays and 4/5 levels. APEX_JSON
If you do not want to use APEX. Simply install the runtime environment to get access to the API.
Example of a (real) POST method that accepts a very complex JSON object. Array with multiple objects and sub-arrays 3-5 levels deep.
I take the whole body and send it to a package for crunching. (the :body). the :apikey comes with the header (not applicable here).
:body is blob so you package needs to convert it to clob and do any character set conversion if your database isn't UTF8.
After that you take the clob and parse it as json.
apex_json.parse (p_source => l_clob);
In my case the initial object is an array so I loop through all the items with
for i in 1 .. nvl (apex_json.get_count (p_path => '.'), 0) loop
Example of finding a varchar2 value
l_app.medication_description := apex_json.get_varchar2 ('[%d].regularMedicationDetails', i);
Where the "i" is referencing the nth object in the array,.
As a veteran PL/SQL programmer, this setup as blasted me into the modern web driven world.