37.21 GET_VALUE_KINDファンクション
このファンクションは、パスの位置にある値の種類を戻します。
構文
APEX_JSON.GET_VALUE_KIND (
p_path IN VARCHAR2,
p0 IN VARCHAR2 DEFAULT NULL,
p1 IN VARCHAR2 DEFAULT NULL,
p2 IN VARCHAR2 DEFAULT NULL,
p3 IN VARCHAR2 DEFAULT NULL,
p4 IN VARCHAR2 DEFAULT NULL,
p_values IN t_values DEFAULT g_values )
RETURN t_kind;
パラメータ
パラメータ | 説明 |
---|---|
p_values |
解析されたJSONメンバー。デフォルトはg_values です。
|
p_path |
p_values への索引。
|
p[0-4] |
p_path の%N はそれぞれpN に置換され、i-th %s または%d はそれぞれp[i-1] に置換されます。
|
表37-1 戻り値
戻り値 | 説明 |
---|---|
t_kind |
指定されたパスの位置にある値のt_kind 。データが見つからない場合は、NULLを戻します。
|
例
この例では、JSON文字列を分析し、属性の種類を出力します。
DECLARE
j apex_json.t_values;
k apex_json.t_kind;
PROCEDURE print_kind( p_kind in apex_json.t_kind ) IS
BEGIN
dbms_output.put_line(
CASE p_kind
WHEN apex_json.c_null THEN 'NULL'
WHEN apex_json.c_true THEN 'true'
WHEN apex_json.c_false THEN 'false'
WHEN apex_json.c_number THEN 'NUMBER'
WHEN apex_json.c_varchar2 THEN 'VARCHAR2'
WHEN apex_json.c_object THEN 'OBJECT'
WHEN apex_json.c_array THEN 'ARRAY'
WHEN apex_json.c_clob THEN 'CLOB' end );
END print_kind;
BEGIN
apex_json.parse(j, '{ "foo": 3, "bar": [1, 2, 3, 4] }');
k := apex_json.get_value_kind (
p_values => j,
p_path => 'bar[%d]',
p0 => 2); -- returns the t_value for bar[2]
print_kind(k); -- 'NUMBER'
k := apex_json.get_value_kind (
p_values => j,
p_path => 'bar');
print_kind(k); -- 'ARRAY'
END;
親トピック: APEX_JSON