解析json报文,获取key的value

2024-09-03 19:32
文章标签 json 解析 获取 key value 报文

本文主要是介绍解析json报文,获取key的value,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

新增解析json报文,获取key的value

建立如下两种类型

CREATE OR REPLACE TYPE ty_row_str_split  as object (strValue VARCHAR2 (4000));
CREATE OR REPLACE TYPE ty_tbl_str_split AS TABLE OF ty_row_str_split;

新建json截取通用方法

CREATE OR REPLACE FUNCTION fun_split(p_str       IN VARCHAR2,p_delimiter IN VARCHAR2)RETURN ty_tbl_str_split IS--名称:json截取通用方法--传入参数:--p_str json报文内容--p_delimiter json报文中的key值j         INT := 0;i         INT := 1;len       INT := 0;len1      INT := 0;str       VARCHAR2(4000);str_split ty_tbl_str_split := ty_tbl_str_split();
BEGIN--获取json长度lenlen  := LENGTH(p_str);--获取key长度len1len1 := LENGTH(p_delimiter);WHILE j < len LOOPj := INSTR(p_str, p_delimiter, i);IF j = 0 THENj   := len;str := SUBSTR(p_str, i);str_split.EXTEND;str_split(str_split.COUNT) := ty_row_str_split(strValue => str);IF i >= len THENEXIT;END IF;ELSEstr := SUBSTR(p_str, i, j - i);i   := j + len1;str_split.EXTEND;str_split(str_split.COUNT) := ty_row_str_split(strValue => str);END IF;END LOOP;RETURN str_split;
END fun_split;

解析json通用方法

create or replace FUNCTION fun_parsejson(p_jsonstr varchar2, p_key varchar2)RETURN VARCHAR2 AS--名称:解析json通用方法rtnVal    VARCHAR2(1000);i         NUMBER(2);jsonkey   VARCHAR2(500);jsonvalue VARCHAR2(1000);json      VARCHAR2(3000);
BEGINIF p_jsonstr IS NOT NULL THEN--将前后的括号去掉json := REPLACE(p_jsonstr, '{', '');json := REPLACE(json, '}', '');json := replace(json, '"', '');FOR temprow IN (SELECT strvalue AS VALUE FROM TABLE(fun_split(json, ','))) LOOPIF temprow.VALUE IS NOT NULL THENi         := 0;jsonkey   := '';jsonvalue := '';FOR tem2 IN (SELECT strvalue AS VALUEFROM TABLE(fun_split(temprow.value, ':'))) LOOPIF i = 0 THENjsonkey := tem2.VALUE;END IF;IF i = 1 THENjsonvalue := tem2.VALUE;END IF;i := i + 1;END LOOP;IF (jsonkey = p_key) THENrtnVal := jsonvalue;END if;END IF;END LOOP;END IF;RETURN rtnVal;
END fun_parsejson;

测试

--更新
update t_confirm_letter tset t.d_confirm_date = to_date(fun_parsejson(t.report_data, 'confirmDate'),'yyyy-MM-dd')where 1=1and t.d_confirm_date is nulland t.report_data is not null;

这篇关于解析json报文,获取key的value的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133843

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http