ORACLE JSON處理
DECLARE
P_CLOB CLOB :=
'{
"age":123
}';
V_JSON_IN JSON_OBJECT_T := JSON_OBJECT_T.PARSE(P_CLOB);
V_AGE_ID NUMBER := V_JSON_IN.GET_NUMBER('age');
BEGIN
dbms_output.put_line(V_AGE_ID);
END;
declare
P_CLOB CLOB;
-- 聲明一個json對象
V_JSON_OUT JSON_OBJECT_T := NEW JSON_OBJECT_T;
begin
--為這個json對象賦值
V_JSON_OUT.PUT('firstname', '王');
-- 獲取指定的key值
P_CLOB := V_JSON_OUT.GET_CLOB('firstname');
P_CLOB := V_JSON_OUT.GET_STRING('firstname');
-- 輸出
DBMS_OUTPUT.put_line(TO_CHAR(P_CLOB));
end;
JSON_ARRAY_T
DECLARE
-- 聲明字符串變量
p_json_str VARCHAR2(500);
--數(shù)組變量
p_json_list JSON_ARRAY_T;
-- json變量
p_json JSON_OBJECT_T;
p_name VARCHAR2(20);
p_age number;
BEGIN
p_json_str := '[
{"name": "lisi", "age": 30},
{"name":"zhangsan", "age": 20}
]';
-- 字符解析成json數(shù)組
p_json_list := JSON_ARRAY_T.parse(p_json_str);
-- 數(shù)組長度
DBMS_OUTPUT.PUT_LINE(p_json_list.get_size);
FOR i IN 0.. p_json_list.get_size - 1 LOOP
p_json := JSON_OBJECT_T(p_json_list.get(0));
p_name := p_json.get_string('name');
p_age := p_json.get_number('age');
dbms_output.put_line('name:'||p_name||';age:'||p_age);
END LOOP;
-- 添加數(shù)據(jù)
p_json := new JSON_OBJECT_T;
p_json.put('name', '王五');
p_json.put('age', 23);
p_json_list.append(p_json);
dbms_output.put_line(p_json_list.to_string());
DBMS_OUTPUT.PUT_LINE(JSON_OBJECT_T(p_json_list.get(0)).get_number('age'));
END;
|