21.2 Constants and Data Types
Parser Interface
The following are constants used for the parser interface:
subtype t_kind is binary_integer range 1 .. 8;
c_null constant t_kind := 1;
c_true constant t_kind := 2;
c_false constant t_kind := 3;
c_number constant t_kind := 4;
c_varchar2 constant t_kind := 5;
c_object constant t_kind := 6;
c_array constant t_kind := 7;
c_clob constant t_kind := 8;
Storage for JSON Data
JSON data is stored in an index by varchar2 table. The JSON values are stored as records. The discriminator "kind" determines whether the value is null, true, false, a number, a varchar2, a clob, an object or an array. It depends on "kind" which record fields are used and how. If not explicitly mentioned below, the other record fields' values are undefined:
* c_null: -
* c_true: -
* c_false: -
* c_number: number_value contains the number value
* c_varchar2: varchar2_value contains the varchar2 value
* c_clob: clob_value contains the clob
* c_object: object_members contains the names of the object's members
* c_array: number_value contains the array length
type t_value is record (
kind t_kind,
number_value number,
varchar2_value varchar2(32767),
clob_value clob,
object_members apex_t_varchar2 );
type t_values is table of t_value index by varchar2(32767);
Default Format for Dates
c_date_iso8601 constant varchar2(30) := 'yyyy-mm-dd"T"hh24:mi:ss"Z"';
Default JSON Values Table
g_values t_values;
Errors Thrown for PARSE()
e_parse_error exception;
pragma exception_init(e_parse_error, -20987);
Parent topic: APEX_JSON