oracle如何解析json,oracle 解析json格式
1、
CREATE OR REPLACE PACKAGE PKG_ANALYSE_COMMON IS
-- AUTHOR : YZCHEN
-- CREATED : 2013/11/26 14:12:43
-- PURPOSE : 公共存储过程包
/*
* AUTHOR: YZCHEN DATETIME: 2013-11-26 14:20:36
* DESC: 根据P_SEQ分割字符串,并返回数据格式,默认以,分割
*/
-- 分割后的字符串临时存储类型
TYPE TYPE_SPLIT IS TABLE OF VARCHAR2(1024);
-- 分割函数
FUNCTION FUNC_SPLIT(P_LIST VARCHAR2, P_SEP VARCHAR2 := ',')
RETURN TYPE_SPLIT
PIPELINED;
/*
* AUTHOR: YZCHEN DATETIME: 2013-11-27 17:20:36
* DESC: 解析指定的JSON格式字符串
*/
-- 解析函数
FUNCTION FUNC_PARSEJSON(P_JSONSTR VARCHAR2) RETURN TYPE_SPLIT
PIPELINED;
-- 解析函数,并获取指定KEY的VALUE值
FUNCTION FUNC_PARSEJSON_BYKEY(P_JSONSTR VARCHAR2, P_KEY VARCHAR2)
RETURN VARCHAR2;
END PKG_ANALYSE_COMMON;
2、
CREATE OR REPLACE PACKAGE BODY PKG_ANALYSE_COMMON IS
/*
* @SEE DECLARETION
*/
FUNCTION FUNC_SPLIT(P_LIST VARCHAR2, P_SEP VARCHAR2 := ',')
RETURN TYPE_SPLIT
PIPELINED IS
L_IDX PLS_INTEGER;
V_LIST VARCHAR2(4000) := P_LIST;
BEGIN
LOOP
L_IDX := INSTR(V_LIST, P_SEP);
IF L_IDX > 0 THEN
PIPE ROW(SUBSTR(V_LIST, 1, L_IDX - 1));
V_LIST := SUBSTR(V_LIST, L_IDX + LENGTH(P_SEP));
ELSE
PIPE ROW(V_LIST);
EXIT;
END IF;
END LOOP;
END FUNC_SPLIT;
/*
* @SEE DECLARETION
*/
FUNCTION FUNC_PARSEJSON(P_JSONSTR VARCHAR2) RETURN TYPE_SPLIT
PIPELINED IS
V_JSONSTR VARCHAR2(1000) := P_JSONSTR;
JSONKEY VARCHAR2(50);
JSONVALUE VARCHAR2(50);
JSON VARCHAR2(1000);
TEMPCHAR VARCHAR2(1);
TEMPSTR1 VARCHAR2(1000);
TEMPSTR2 VARCHAR2(1000);
CUR_JSON1 SYS_REFCURSOR;
CUR_JSON2 SYS_REFCURSOR;
BEGIN
IF V_JSONSTR IS NOT NULL THEN
-- 先去掉前面的 [ 和后面的 ] 符号
TEMPCHAR := SUBSTR(V_JSONSTR, 1, 1);
IF '[' = TEMPCHAR THEN
V_JSONSTR := SUBSTR(V_JSONSTR, 2, LENGTH(V_JSONSTR));
END IF;
TEMPCHAR := SUBSTR(V_JSONSTR, LENGTH(V_JSONSTR), 1);
IF ']' = TEMPCHAR THEN
V_JSONSTR := SUBSTR(V_JSONSTR, 1, LENGTH(V_JSONSTR) - 1);
END IF;
-- 开始解析
JSON := REPLACE(V_JSONSTR, '{', '');
JSON := REPLACE(JSON, '}', '');
JSON := REPLACE(JSON, '"', '');
OPEN CUR_JSON1 FOR
SELECT * FROM TABLE(PKG_ANALYSE_COMMON.FUNC_SPLIT(JSON, ','));
LOOP
FETCH CUR_JSON1
INTO TEMPSTR1;
EXIT WHEN CUR_JSON1%NOTFOUND;
IF TEMPSTR1 IS NOT NULL THEN
JSONKEY := '';
JSONVALUE := '';
OPEN CUR_JSON2 FOR
SELECT * FROM TABLE(PKG_ANALYSE_COMMON.FUNC_SPLIT(TEMPSTR1, ':'));
LOOP
FETCH CUR_JSON2
INTO TEMPSTR2;
EXIT WHEN CUR_JSON2%NOTFOUND;
PIPE ROW(TEMPSTR2);
END LOOP;
END IF;
END LOOP;
END IF;
END FUNC_PARSEJSON;
/*
* @SEE DECLARETION
*/
FUNCTION FUNC_PARSEJSON_BYKEY(P_JSONSTR VARCHAR2, P_KEY VARCHAR2)
RETURN VARCHAR2 IS
V_JSONSTR VARCHAR2(4000) := P_JSONSTR;
JSONKEY VARCHAR2(50);
JSONVALUE VARCHAR2(50);
JSON VARCHAR2(4000);
TEMPCHAR VARCHAR2(1);
TEMPSTR1 VARCHAR2(4000);
TEMPSTR2 VARCHAR2(4000);
CUR_JSON1 SYS_REFCURSOR;
CUR_JSON2 SYS_REFCURSOR;
IDX NUMBER := 0;
BEGIN
IF V_JSONSTR IS NOT NULL THEN
-- 先去掉前面的 [ 和后面的 ] 符号
TEMPCHAR := SUBSTR(V_JSONSTR, 1, 1);
IF '[' = TEMPCHAR THEN
V_JSONSTR := SUBSTR(V_JSONSTR, 2, LENGTH(V_JSONSTR));
END IF;
TEMPCHAR := SUBSTR(V_JSONSTR, LENGTH(V_JSONSTR), 1);
IF ']' = TEMPCHAR THEN
V_JSONSTR := SUBSTR(V_JSONSTR, 1, LENGTH(V_JSONSTR) - 1);
END IF;
-- 开始解析
JSON := REPLACE(V_JSONSTR, '{', '');
JSON := REPLACE(JSON, '}', '');
JSON := REPLACE(JSON, '"', '');
OPEN CUR_JSON1 FOR
SELECT * FROM TABLE(PKG_ANALYSE_COMMON.FUNC_SPLIT(JSON, ','));
LOOP
FETCH CUR_JSON1
INTO TEMPSTR1;
EXIT WHEN CUR_JSON1%NOTFOUND;
IDX := 0;
IF TEMPSTR1 IS NOT NULL THEN
JSONKEY := '';
JSONVALUE := '';
OPEN CUR_JSON2 FOR
SELECT * FROM TABLE(PKG_ANALYSE_COMMON.FUNC_SPLIT(TEMPSTR1, ':'));
LOOP
FETCH CUR_JSON2
INTO TEMPSTR2;
EXIT WHEN CUR_JSON2%NOTFOUND;
IF IDX > 0 THEN
RETURN TEMPSTR2;
END IF;
IF TEMPSTR2 = P_KEY THEN
IDX := IDX + 1;
END IF;
END LOOP;
END IF;
END LOOP;
END IF;
RETURN '';
END FUNC_PARSEJSON_BYKEY;
END PKG_ANALYSE_COMMON;
WP8解析JSON格式(使用DataContractJsonSerializer类)(推荐)
DataContractJsonSerializer是.NET自带的类,在解析JSON格式的时候使用起来方便快捷,至于生成方面由于暂时没用到就没去看了.使用需要引用System.Runtime.Ser ...
WP8解析JSON格式(使用Newtonsoft.Json包)
DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式. 这里举一个简单的解析JSON格式的例子(更多JSON操作): { "response&q ...
解析json格式数据
实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...
用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
Python3基础 json.loads 解析json格式的数据,得到一个字典
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
$Java-json系列(一):用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
使用google的GSON解析json格式的数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
Scala解析Json格式
Scala解析Json格式 代码块 Scala原生包 导入包 import scala.util.parsing.json._ def main(args: Array[String]): Unit ...
随机推荐
iOS原生地图开发指南续——大头针与自定义标注
iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...
php 审核管理
权限管理界面
oracle如何解析json,oracle 解析json格式相关推荐
- oracle大对象实例_Oracle解析复杂json的方法实例详解
问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...
- sql解析json oracle,oracle 11g plsql解析json数据示例1
以下存储过程将数据库表中的clob类型字段(存储的内容为对应Json格式数据)读取出来,对其解析,进行相关业务操作 CREATE OR REPLACE PROCEDURE xq_midso_gen(p ...
- python中json模块_Python使用内置json模块解析json格式数据的方法
本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...
- SpringCloud工作笔记047---FastJson解析多级JSON_FastJson解析嵌套JSON_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
JAVA技术交流QQ群:170933152 解析嵌套json,这里说一下: //下面可以通过解析多级json的方式,获取数据,插入到数据库 //JSONObject userJsonObj = JSO ...
- swift:使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据
在我的博客(下面)两个实验的基础上,使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据,参照视频实现的"天气信息"小实验 1 创 ...
- JSON.parseObject 解析JSON格式数据
fastjson是阿里巴巴开源产品之一,解析速度快. 下载地址(maven仓库):https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2 ...
- javascript解析json字符串,各种格式分析
javascript解析json字符串,各种格式分析 JS,JSON,EVAL函数说明 JSON.parse(字符串) 方法用于将一个 JSON 字符串转换为对象 JSON.stringify(对象或 ...
- javascript解析JSON返回的日期格式
javascript解析JSON返回的日期格式 返回的JSON格式 /Date(1563162120000)/ 解析后的日期 2019-07-15 11:42:00 // 格式化josn字符串 fun ...
- android json格式解析,android之解析json数据格式详解
1.JSON解析 (1).解析Object之一: 解析方法: 1 JSONObject demoJson =newJSONObject(jsonString); 2 String url = demo ...
最新文章
- 20篇「ACL2020」!抢先看自然语言处理2020在研究什么?
- 国内丨人工智能(AI)引发的中国经济新动能
- eclipse断点调试 出现Source not found
- 如何不能保证每次都请求成功
- 不可能的工作:在FBX模型导入脚本中生成模型的预置体
- 2019 年,C# 还值得学习吗?
- Git Merge代码失败 解决
- Spring 入门 Ioc-Annotation
- 15. jQuery - 删除元素
- TiDB 源码阅读系列文章(二十)Table Partition
- 2021年中国研究生数学建模竞赛B题参考思路
- dq坐标系下无功功率表达式_基于自动发电控制的柔性直流输电恢复电网的控制方法_2017103002337_权利要求书_专利查询_专利网_钻瓜专利网...
- ClientKey实现登录QQ空间,并设置背景音乐
- 重做raid后,重启无法进入系统
- 安装 Ubuntu 22.04.1 LTS 桌面版(详细步骤)
- 什么是 .com 域名?含义和用途又是什么?
- 一个高效的敏感词过滤方法(PHP)
- 2022年最新谷歌翻译chrome 浏览器翻译解决方案
- avro-java,proto-java
- 运放放大倍数计算公式_模电的半壁江山——运算放大器的原理和应用