再次提供一个纯粹通过pl/sql解析json的方法。
2018-08-21 15:56
946 查看
在github上面有一个叫pljson的项目,该项目就是用pl/sql 来解析json的。
项目地址:pljson(需翻|强),如果翻不了强的同学,我在国内克隆了一个副本,不定期同步更新 pljson(国内版)
安装方法,在release/ 标签中选择一个版本,
1.下载压缩包,
2.解压,
3.在pl/sql中命令窗口,将install.sql拖入命令窗口
4.F8执行,会顺利安装。
卸载方法,同上,执行uninstall.sql。
测试用例1:解析JSONObject
DECLARE obj pljson; list pljson_list; l_bool BOOLEAN; BEGIN obj := pljson(' { "a": "中文", "b": 12.243, "c": 2e-3, "d": [true, false, "abdc", [1,2,3]], "e": [3, {"e2":3}], "f": { "f2":true } }'); --obj.print; -- equivalent to print dbms_output.put_line(obj.to_char); dbms_output.put_line(pljson_ext.get_string(obj, 'a')); dbms_output.put_line(pljson_ext.get_double(obj, 'b')); dbms_output.put_line(pljson_ext.get_number(obj, 'b')); dbms_output.put_line(pljson_ext.get_double(obj, 'c')); dbms_output.put_line(pljson_ext.get_number(obj, 'c')); l_bool := pljson_ext.get_bool(obj, 'd[1]'); dbms_output.put_line(sys.diutil.bool_to_int(l_bool)); l_bool := pljson_ext.get_bool(obj, 'd[2]'); dbms_output.put_line(sys.diutil.bool_to_int(l_bool)); dbms_output.put_line(pljson_ext.get_string(obj, 'd[3]')); dbms_output.put_line(pljson_ext.get_number(obj, 'e[1]')); dbms_output.put_line(pljson_ext.get_number(obj, 'e[2].e2')); l_bool := pljson_ext.get_bool(obj, 'f.f2'); dbms_output.put_line(sys.diutil.bool_to_int(l_bool)); END;
测试用例2:解析JSONArray
DECLARE json_data2 pljson; json_data pljson := pljson('{ "foo": "bar", "list": [ {"key": "value1"}, {"key": "value2"} ] }'); list_value pljson_list; l_value VARCHAR2(200); BEGIN list_value := json_ext.get_json_list(json_data, 'list'); dbms_output.put_line('Count = ' || list_value.count); FOR i IN 1 .. list_value.count LOOP pljson(list_value.get(i)).get('key').print; dbms_output.put_line(json_ext.get_string(pljson(list_value.get(i)), 'key')); l_value := json_ext.get_string(pljson(list_value.get(i)), 'key'); dbms_output.put_line(l_value); END LOOP; END;
相关文章推荐
- Oracle TnsPing 正确,pl/sql ora-12154无法解析指定的连接标识符的解决方法
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 解析PL/SQL Developer导入导出数据库的方法以及说明
- pl/sql 报ORA-12154: TNS:无法解析指定的连接标志符 解决方法
- 解析一个通过添加本地分区索引提高SQL性能的案例
- 为Silverlight 提供将Json解析为Geometry的方法
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- T-SQL Tips: 通过Json字符串传递一个数组
- 如何通过跟踪一个客户端程序发出的sql的方法来优化SQL
- Oracle 数据库PL/SQL ORA -12154 TNS:无法解析指定的连接标识符解决方法
- 一个pl/sql中可以代替游标的写法(用这种方法也可以实现象sql中top的效果)
- 另一种通过PL/SQL获取数据库服务器端文件的方法
- JSON序列化与解析(原生JS方法)【IE6和chrome测试通过】
- oracle pl_sql 通过游标循环取数字的方法
- 再次提供一个获取自动以下拉列表数据方法
- PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法
- 【cocos2d-x】关于cocos2d-x解析json的一个类,jsonbox的使用方法资料
- oracle pl/sql应用解析以及存储过程对应到java中的调用方法
- PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法