亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Oracle解析復雜json的方法實例詳解

Oracle解析復雜json的方法實例詳解

熱門標簽:理財產品電銷機器人 電話機器人那種好 上海網絡外呼系統 百度地圖標注注解 外呼系統好點子 百度地圖標注飯店位置怎么 南通電銷外呼系統哪家強 區域地圖標注怎么設置 地圖標注的坐標點

問題背景:

         當前在Oracle數據庫(11G之前的版本)解析json沒有可以直接使用的系統方法,網上流傳的PLSQL腳本大多也只可以解析結構較單一的json串,對于結構復雜的json串還無法解析。如此一來導致即便可以在PL/SQL中調用遠程接口,但返回結果仍需傳給前臺js或java等其它代碼進行處理,不太方便。

分析思路:

         1、在PL/SQL中寫json串,無需聲明json對象,只需直接拼接成格式正確的json字符串即可,因此數據庫對象間json串的傳遞完全可以用varchar2或clob來代替。

         2、結構復雜的json串節點元素值基本上可以分為兩類:①仍為json串②json數組,因此我們只需對這兩種類型的json對象進行處理即可。

         3、在PL/SQL中處理json數組時,由于json元素是無序且可以重復的,因此我們需要對數組成員進行索引并能夠獲取數組長度才可以對其循環處理。

         4、java中有很多可以方便解析json串的開源jar包,且數據庫支持導入java類文件,因此是否可以將java代碼編譯生成的class導入數據處理json呢?

解決方案:

方法1:loadjava導入java類進行解析

1、查看當前數據庫已導入的java類文件

2、執行loadjava命令導入處理json所需jar文件,在此選擇org.json而不選擇fastjson或jackson的原因是該jar包沒有外部依賴且滿足功能的同時所需導入類文件較少。

--向數據庫導入json相關jar包
loadjava -r -f -u scott/tiger@xxx.xxx.xxx.xxx:1521/orcl json.jar
--刪除指定jar
#dropjava -u scott/tiger@xxx.xxx.xxx.xxx:1521/orcl json.jar

在此,我們執行導入,如下:

細節:如果導入的jar包存在外部依賴,會報如下異常,繼續導入外部依賴只會使要導入的jar包越來越多,最終還不一定可以導入成功,得不償失,如下:

3、導入json.jar成功后再次查看當前已導入的類文件如下

4、在數據庫SQL窗口執行以下腳本,創建java源碼對象

create or replace and compile java source named "JsonUtil" as
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.Integer;
public class JsonUtil {
 //取json串單個節點值
 public static String getValue(String jsonStr,String nodeName){
 String nodeValue="";
 try {
  if(jsonStr==null||!jsonStr.startsWith("{")||!jsonStr.endsWith("}")){
  nodeValue="";
  }else{
  JSONObject obj =new JSONObject(jsonStr);
  nodeValue = obj.getString(nodeName);
  }
 } catch (JSONException e) {
  nodeValue="";
 }
 return nodeValue;
 }
 //取json數組長度便于循環處理
 public static Integer getArrayLength(String jsonArrayStr){
 Integer length=0;
 try {
  if(jsonArrayStr==null||!jsonArrayStr.startsWith("[")||!jsonArrayStr.endsWith("]")){
  length=0;
  }else{
  JSONArray jsonArr = new JSONArray(jsonArrayStr);
  length=jsonArr.length();
  }
 } catch (JSONException e) {
  length=0;
 }
 return length;
 }
 //取json數組第index個元素
 public static String getArrayValue(String jsonStr,Integer index){
 String nodeValue="";
 try {
  if(jsonStr==null||!jsonStr.startsWith("[")||!jsonStr.endsWith("]")){
  nodeValue="";
  }else{
  JSONArray jsonArr = new JSONArray(jsonStr);
  nodeValue=jsonArr.getString(index);
  }
 } catch (JSONException e) {
  nodeValue="";
 }
 return nodeValue;
 }
}

創建成功后再次查詢可以看到對應的class文件:

5、利用步驟4創建的class創建function(或procedure),在此為了使其跟目前數據庫已存在的json處理方法區分開,我們創建一個package,如下:

create or replace package jsonpkg
as
function getval(jsonstr varchar2,nodename varchar2) return varchar2;
function getarrval(jsonArrayStr varchar2,seqNo number) return varchar2;
function getarrlen(jsonArrayStr varchar2) return number;
end jsonpkg;
/
create or replace package body jsonpkg
as
function getval(jsonstr varchar2,nodename varchar2) return varchar2
as language java name 'JsonUtil.getValue(java.lang.String,java.lang.String) return java.lang.String';
function getarrval(jsonArrayStr varchar2,seqNo number) return varchar2
as language java name 'JsonUtil.getArrayValue(java.lang.String, java.lang.Integer) return java.lang.String';
function getarrlen(jsonArrayStr varchar2) return number
as language java name 'JsonUtil.getArrayLength(java.lang.String) return java.lang.Integer';
end jsonpkg;
/

創建成功后可以查看包說明和主體:

6、測試

①簡單json測試

②解析復雜json

至此,我們就可以很輕松的就取到json串中任意節點的值(如果節點值為數組則可以先計算數組長度再進行loop循環處理,或直接用getarrval方法取指定數組元素的值)。

方法2:安裝開源組件PL/JSON

下載地址: https://github.com/pljson/pljson

優點:安裝方便,解析方法較專業;缺點:新增數據庫對象較多,短期學習成本較高。文檔很詳細,在此不再贅述。如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • Oracle中的游標和函數詳解
  • oracle獲取當前時間,精確到毫秒并指定精確位數的實現方法
  • Linux靜默安裝Oracle11g部分問題的解決方法
  • win10 oracle11g安裝報錯問題集合 附解決方法
  • Oracle連接遠程數據庫的四種方法
  • Oracle存儲過程、包、方法使用總結(推薦)
  • oracle創建表空間、授權、創建用戶、導入dmp文件
  • Oracle 如何規范清理v$archived_log記錄實例詳解

標簽:百色 遼源 自貢 中衛 昭通 寧波 海東 紹興

巨人網絡通訊聲明:本文標題《Oracle解析復雜json的方法實例詳解》,本文關鍵詞  Oracle,解析,復雜,json,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle解析復雜json的方法實例詳解》相關的同類信息!
  • 本頁收集關于Oracle解析復雜json的方法實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    久久国产精品只做精品| 久久久久久久网| 免费的黄色小视频| 亚洲女初尝黑人巨高清在线观看| 欧美大片一区| 国产a视频| 久久国产精品只做精品| 黄色短视屏| 国产伦精品一区二区三区在线观看 | 免费一级生活片| 亚洲第一视频在线播放| 精品视频在线观看一区二区| 四虎影视精品永久免费网站| 成人免费观看网欧美片| 久久久久久久免费视频| 麻豆午夜视频| 欧美爱爱动态| 亚洲精品影院| 色综合久久天天综合观看| 日韩欧美一二三区| 91麻豆精品国产自产在线| 一级片免费在线观看视频| 999精品影视在线观看| 精品在线观看国产| 午夜在线影院| 成人免费网站久久久| 久久国产精品自线拍免费| 四虎影视精品永久免费网站| 欧美国产日韩在线| 亚欧成人乱码一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99久久网站| 久久精品成人一区二区三区| 国产精品自拍在线| 欧美α片无限看在线观看免费| 日本在线不卡视频| 中文字幕一区二区三区精彩视频| 国产欧美精品午夜在线播放| 亚洲精品久久久中文字| 成人a大片在线观看| 国产麻豆精品免费视频| 国产一区免费观看| 免费毛片播放| 九九久久国产精品大片| 色综合久久久久综合体桃花网| 亚洲 国产精品 日韩| 欧美爱色| 亚洲女初尝黑人巨高清在线观看| 九九九网站| 亚欧乱色一区二区三区| 日韩专区一区| 亚欧成人乱码一区二区| 欧美18性精品| 黄色短视屏| 亚洲第一色在线| 欧美α片无限看在线观看免费| 成人免费观看男女羞羞视频| 99久久精品国产片| 精品视频免费看| 久久精品免视看国产明星| 精品国产亚一区二区三区| 你懂的日韩| 一级女性全黄久久生活片| 成人免费一级纶理片 | 国产成人啪精品视频免费软件| 国产一区二区精品久久91| 999久久66久6只有精品| 国产国语在线播放视频| 精品久久久久久中文字幕一区| 一级片免费在线观看视频| 日本特黄一级| 精品视频在线观看一区二区| 国产美女在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产伦理精品| 人人干人人插| 免费毛片播放| 亚洲精品久久玖玖玖玖| 国产一区二区精品久久91| 香蕉视频一级| 免费一级片在线| 成人免费网站视频ww| 成人免费观看的视频黄页| 天天色成人| 九九久久国产精品| 精品视频免费看| 欧美激情伊人| 一级毛片看真人在线视频| 色综合久久手机在线| 亚洲第一视频在线播放| 99久久网站| 夜夜操网| 精品久久久久久影院免费| 美女免费毛片| 国产伦精品一区二区三区无广告| 欧美激情一区二区三区在线播放| 91麻豆爱豆果冻天美星空| 国产91精品一区| 色综合久久久久综合体桃花网| 国产不卡在线观看| 国产高清在线精品一区二区| 成人免费福利片在线观看| 欧美激情一区二区三区在线播放| 天天做人人爱夜夜爽2020| 精品久久久久久中文| 91麻豆精品国产自产在线观看一区 | 精品视频在线观看视频免费视频 | 午夜在线观看视频免费 成人| 毛片的网站| 日本伦理片网站| 国产韩国精品一区二区三区| 国产美女在线观看| 午夜在线观看视频免费 成人| 天天色成人网| 高清一级片| 香蕉视频久久| 国产成人啪精品视频免费软件| 天堂网中文在线| 精品视频在线观看免费| 国产麻豆精品高清在线播放| 国产欧美精品| 黄视频网站在线观看| 九九久久国产精品大片| 国产高清在线精品一区a| 国产a一级| 成人a级高清视频在线观看| 国产一区精品| 国产伦精品一区二区三区在线观看 | 国产国产人免费视频成69堂| 欧美另类videosbestsex久久 | 国产成人啪精品| 国产伦精品一区二区三区在线观看 | 精品视频在线观看一区二区| 天天做日日爱夜夜爽| 欧美国产日韩久久久| 国产一区二区精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产精品免费精品自在线观看| 99色吧| 九九九国产| 可以免费看污视频的网站| 亚洲 激情| 免费国产一级特黄aa大片在线| 亚洲不卡一区二区三区在线| 四虎影视库| 九九九网站| 美女免费毛片| 精品国产亚洲人成在线| 国产高清在线精品一区二区| 日韩在线观看网站| 国产伦理精品| 日日日夜夜操| 色综合久久天天综合| 国产高清在线精品一区二区| 精品国产一区二区三区久久久蜜臀 | 亚洲www美色| 国产亚洲精品aaa大片| 欧美另类videosbestsex| 欧美激情影院| 久久99这里只有精品国产| 国产一区二区精品| 四虎久久影院| 一级片片| 国产综合91天堂亚洲国产| 国产麻豆精品hdvideoss| 九九国产| 午夜欧美成人香蕉剧场| 成人影视在线播放| 麻豆网站在线看| 成人av在线播放| 亚洲精品影院一区二区| 国产一区二区精品久久| 亚洲wwwwww| 久久精品道一区二区三区| 精品国产三级a| 在线观看导航| 一级毛片视频播放| 国产原创中文字幕| 国产一区二区精品久久91| 欧美激情一区二区三区视频 | 黄视频网站免费观看| 精品在线免费播放| 韩国毛片| 精品国产一级毛片| 欧美一级视频高清片| 美女免费精品视频在线观看| 亚洲精品中文字幕久久久久久| a级黄色毛片免费播放视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲第一视频在线播放| 青青青草影院| 91麻豆精品国产高清在线| 久久99青青久久99久久| 国产一区免费在线观看| 久久99中文字幕| 国产a一级| 国产伦精品一区二区三区在线观看 | 日本免费乱理伦片在线观看2018| 日韩一级黄色大片| 一级片免费在线观看视频|