再次提供一个纯粹通过pl/sql解析json的方法。
在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;
再次提供一个纯粹通过pl/sql解析json的方法。的更多相关文章
- Oracle PL/SQL设置快捷键的方法
pl sql默认设置不是很方便,最近搜罗了一下网上关于PLSQL的一些常用快捷键配置,主要是方便以后自个使用 1.登录后默认自动选中My Objects 默认情况下,PLSQL Developer ...
- PL/SQL Developer过期解决方法
参考资料: plsql过期解决方法 plsql永久注册码适用个版本 方法一: 1.首先,登陆PL/SQL Developer,PL/SQL Developer要到期了 2.输入指令“regedit”打 ...
- hive sql 解析json
在hive中会有很多数据是用json格式来存储的,而我们用数据的时候又必须要将json格式的数据解析成为正常的数据,今天我们就来聊聊hive中是如何解析json数据的. 下面这张表就是json格式的表 ...
- .NET下解析Json的方法
.NET下几种常见的解析JSON方法 主要类 命名空间 限制 内建LINQ支持 DataContractJsonSerializer System.Runtime.Serialization.Json ...
- JavaScript转换与解析JSON的方法
在JavaScript中将JSON的字符串解析成JSON数据格式,一般有两种方式: 一种为使用eval()函数. 使用Function对象来进行返回解析. 使用eval函数来解析,jquery的eac ...
- Java创建和解析Json数据方法(三)——json-lib包的使用
(三)json-lib包的使用 这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject.JSONArray和Java对象:beans, maps ...
- 不一样的dynamic解析json 万能方法
写过javascript的人都知道js解析json 1:(JSON) 字符串转换为对象. var str = '{"name":"lsw","hobb ...
- iOS中解析json多种方法
我感觉JSON解析,重要的是JSON解析之后对结果的处理JSON解析后是个dictionary,但是字典中有可能包含字典和数组,数组中还可以包含字典.向客户端请求的返回数据解析下面就简单介绍一下JSO ...
- vbs 解析 json jsonp 方法
昨天说了下用 htmlfile 来解析 html,今天依然用他来解析,htmlfile 是一个 COM 版的 BOM 和 DOM,所以解析 html, 执行 js 完全不在话下,今天就继续解析 jso ...
随机推荐
- javaweb(1)之tomcat使用
安装 1.点击下载. 2.解压到一个目录. 3.进入解压后的 bin 目录,双击该文件夹下的 startup.bat 即可运行. 4.若运行成功,会有一个窗口悬停如下: 访问地址: localhost ...
- mysql 字段唯一性问题
ALTER TABLE tb ADD unique (name);
- ORACLE——NVL()、NVL2() 函数的用法
NVL和NVL2两个函数虽然不经常用,但是偶尔也会用到,所以了解一下. 语法: --如果表达式1为空则显示表达式2的值,如果表达式1不为空,则显示表达式1的值 NVL(表达式1,表达式2); --如果 ...
- async await 的使用。 其实就是和then一样,只不过改变了链式写法
这样写显得更加舒服.
- 从零开始一起学习SLAM | 点云平滑法线估计
点击公众号"计算机视觉life"关注,置顶星标更快接收消息! 本文编程练习框架及数据获取方法见文末获取方式 菜单栏点击"知识星球"查看「从零开始学习SLAM」一 ...
- OAuth2认证和授权:ClientCredentials认证
1:创建授权服务器项目:AuthorizationServer,添加包:IdentityServer4 2:创建资源服务器项目:ResourcesServer,添加包:IdentityServer4. ...
- Linux LVS_NAT DR
一.lvs-nat LVS是Linux Virtual Server的简写,意即Linux虚拟服务器.是由章文嵩博士开发的一个在内核层面的负载均衡调度器. lvs是在netfilter的INPU ...
- Tomcat 加载 jsp 异常:ServletException: java.lang.LinkageError
环境:win10 JDK:java version "1.8.0_131" mvn 内置 Tomcat 报错: javax.servlet.ServletException: ja ...
- mysql日期操作
一.获取当前日期时间 1.1.获得当前日期+时间(date+time)函数:now() 1.2.获取当前日期+时间(date+time)函数:sysdate() 注:二者类拟,不同在于now()在执行 ...
- Docker Registry V2 with Nginx
安装 nginx 修改/etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/cen ...