加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle11g数据库中的json工具

发布时间:2020-12-12 14:28:59 所属栏目:百科 来源:网络整理
导读:导入依赖库到oracle(org.json:json:20170516) loadjava -r -f -u user/password@ip: 1521 /orasid json- 20170516 .jar 添加java source工具类 create or replace and compile java source named "JsonUtil" as package org.jws; import org.json.JSONObje

导入依赖库到oracle(org.json:json:20170516)

loadjava -r -f -u user/password@ip:1521/orasid json-20170516.jar

添加java source工具类

create or replace and compile java source named "JsonUtil" as
package org.jws;

import org.json.JSONObject;

public class JsonUtil {
    // 获取字符值
    public static String getStringValue(String jsonObjStr,String key) {
        try {
            JSONObject obj = new JSONObject(jsonObjStr);
            if (obj.has(key)) {
                Object value = obj.get(key);
                return value.toString();
            }
        } catch (Exception e) {

        }
        return null;
    }

    // 获取数字值
    public static Double getNumberValue(String jsonObjStr,String key) throws RuntimeException {
        try {
            JSONObject obj = new JSONObject(jsonObjStr);
            if (obj.has(key)) {
                Object value = obj.get(key);
                if (value instanceof Number) {
                    return ((Number) value).doubleValue();
                } else {
                    return Double.parseDouble(value.toString());
                }
            }
        } catch (Exception e) {

        }
        return null;
    }
}
/

定义package

create or replace package pkg_json as --获取字符 function getstr ( jsonstr varchar2,nodename varchar2 ) return varchar2;

  --获取数值
  function getnum
  (
    jsonstr  varchar2,nodename varchar2
  ) return number;
end pkg_json;
/
create or replace package body pkg_json as function getstr ( jsonstr varchar2,nodename varchar2 ) return varchar2 as language java name 'org.jws.JsonUtil.getStringValue(java.lang.String,java.lang.String) return java.lang.String';

  function getnum
  (
    jsonstr  varchar2,nodename varchar2
  ) return number as
    language java name 'org.jws.JsonUtil.getNumberValue(java.lang.String,java.lang.String) return java.lang.Double';

end pkg_json;
/

测试

select pkg_json.getstr('{"name":"zhangsan","age":18}','name') strval,pkg_json.getnum('{"name":"zhangsan",'age') numval from dual;

tips

select * from user_java_classes a;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读