前言

某字段将业务数据以json格式进行了存储,且格式为简单的{k:v,k:v,…},现在需要用存储过程从该字段中取部分值,于是有了下面的代码。
参数1代表json字符,参数2代表需要提取值的key,结果返回value


 FUNCTION TRANS_JSON(JSON IN VARCHAR2, P_KEY IN VARCHAR2) RETURN VARCHAR2 ISJSON_STR VARCHAR2(1024);TYPE TYPE_SPLIT IS TABLE OF VARCHAR2(128) INDEX BY BINARY_INTEGER;KEY_VALUE TYPE_SPLIT;ITEM      NUMBER;GROUP_NUM NUMBER;GROUP_STR VARCHAR2(50);KEY       VARCHAR2(50);BEGINIF JSON IS NULL THENRETURN NULL;END IF;JSON_STR  := TRANSLATE(JSON, '1"{}  ', '1'); --JSON字符串处理GROUP_NUM := LENGTH(JSON_STR) - LENGTH(REPLACE(JSON_STR, ',', '')) + 1; --数组长度--生成数组FOR I IN 1 .. GROUP_NUM LOOPITEM := INSTR(JSON_STR || ',', ',', 1, 1);KEY_VALUE(I) := REPLACE(SUBSTR(JSON_STR, 0, ITEM), ',', '');JSON_STR := SUBSTR(JSON_STR, ITEM + 1, LENGTH(JSON_STR));END LOOP;--匹配数组FOR I IN 1 .. GROUP_NUM LOOPGROUP_STR := KEY_VALUE(I);ITEM      := INSTR(GROUP_STR, ':', 1, 1);KEY       := REPLACE(SUBSTR(GROUP_STR, 0, ITEM - 1), CHR(10), '');IF TRIM(KEY) = TRIM(P_KEY) THENRETURN TRIM(SUBSTR(GROUP_STR, ITEM + 1, LENGTH(GROUP_STR)));END IF;END LOOP;RETURN NULL;EXCEPTIONWHEN OTHERS THENRETURN NULL;END;

从简易的json中提取数据相关推荐

  1. Ajax(从json中提取数据)

    2019独角兽企业重金招聘Python工程师标准>>> json数据为: out.println("{name:'平凡的世界',author:'路遥'}");aj ...

  2. php中json字符串值,如何使用PHP从JSON中提取数据?

    狐的传说 您可以使用json_decode()将json字符串转换为PHP对象/数组.例如.输入:$json = '{"a":1,"b":2,"c&q ...

  3. JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  4. python json接口数据提取_返回数据中提取数据的方法(JSON数据取其中某一个值的方法)...

    返回数据中提取数据的方法 比如下面的案例是,取店铺名称 接口返回数据如下: {"Code":0,"Msg":"ok","Data& ...

  5. 如何从PostgreSQL json中提取数组

    如何从PostgreSQL json中提取数组 作者 digoal 日期 2016-09-10 标签 PostgreSQL , json , 数组 , jsonb 背景 在PostgreSQL中使用J ...

  6. python提取excel数据-代码详解:使用Python从不同表格中提取数据

    常用的表格数据存储文件格式--CSV,Microsoft Excel,Google Excel . Python通常称为粘合语言.这个名称归因于人们逐渐开发出的大量接口库和特征,也得益于广泛的使用和良 ...

  7. 在jmeter中怎么提取数据_如何使用JMeter从文件中提取数据

    在性能测试方面,重用响应数据至关重要.几乎(如果不是全部!)负载测试场景假设您: 从先前的响应中提取有趣的方面,并在下一个请求中重用它们(也称为相关) 确保实际响应符合预期(又称断言) 因此,如果您是 ...

  8. python处理表格数据教程_代码详解:使用Python从不同表格中提取数据

    常用的表格数据存储文件格式--CSV,Microsoft Excel,Google Excel . Python通常称为粘合语言.这个名称归因于人们逐渐开发出的大量接口库和特征,也得益于广泛的使用和良 ...

  9. 取出json中的数据php,怎么从Json中取出数据放到一个新组中

    如何从Json中取出数据放到一个新组中 JSON数据如下: { "CommunityModel": [ { " UUID ": "xxxxxx-xxx ...

最新文章

  1. centos7 virtualbox使用internal network 内网模式
  2. (转)ubuntu 文件系统
  3. java 抛出异常 返回值_java通过抛异常来返回提示信息
  4. iphone开发中数据持久化之——属性列表序列化(一)
  5. 北方工业大学gpa计算_北方大学联盟仓库的探索性分析
  6. python中if continue else,python基础;if else;for;while 分支处理.continue,break
  7. 主编编辑器操作流程指南
  8. 打印机扫描显示计算机故障或繁忙,打印机无法扫描_如何用打印机进行扫描,如何用打印机扫描文件...
  9. 全球及中国石油市场十四五发展走势及竞争格局动态分析报告2021年版
  10. 企业邮箱哪个最好用?企业邮箱哪个安全?
  11. linux rpm -qip命令,linux rpm命令
  12. 启用计算机的无线同屏,win10系统无线同屏功能如何使用
  13. 微课--Python使用UDP协议实现局域网内屏幕广播(40分钟)
  14. 路由器常见的第三方系统( OpenWRT,LEDE,PandoraBox,Gargoyle | ASUSWrt,Merlin,Padavan | DD-WRT | Tomato )
  15. [树状数组+离散化] NamomoCamp Daily 6
  16. SOEM 源码解析 ecx_set_slaves_to_default
  17. JS中的数组转变成JSON格式字符串的方法
  18. 2023最新springboot计算机毕业设计选题大全(附源码+论文答辩),别再发愁毕设了。
  19. 网络舆情信息工作怎么做的解决方案
  20. mathtype部分功能不可用

热门文章

  1. Android开发中的WMS详细解析
  2. Java8之新日期时间篇
  3. 【53期】面试官:谈一下数据库分库分表之后,你是如何解决事务问题?
  4. word2vec-google code
  5. easyexcel实现代码生成xlsx文件并保存到云端
  6. 什么是CC攻击?CC攻击的防御措施有哪些?
  7. 程序员的8个级别,你属于哪个级别?
  8. 52ypay comsubmit php,Hack易支付平台 - 一站式免签约支付方案-Hack易支付
  9. linux下raid1数据恢复,在linux下做RAID1试验
  10. Unity3D学习记录——NGUI Sprit2