zoukankan      html  css  js  c++  java
  • 再次提供一个纯粹通过pl/sql解析json的方法。

    在github上面有一个叫pljson的项目,该项目就是用pl/sql 来解析json的。

    项目地址:pljson(需翻|强),如果翻不了强的同学,我在国内克隆了一个副本,不定期同步更新 pljson(国内版)


    安装方法,在release/ 标签中选择一个版本,

    1.下载压缩包,

    2.解压,

    3.在pl/sql中命令窗口,将install.sql拖入命令窗口

    4.F8执行,会顺利安装。

    卸载方法,同上,执行uninstall.sql。


    测试用例1:解析JSONObject

    DECLARE
      obj  pljson;
      list pljson_list;
    
      l_bool BOOLEAN;
    BEGIN
    
      obj := pljson('
        {
          "a": "中文",
          "b": 12.243,
          "c": 2e-3,
          "d": [true, false, "abdc", [1,2,3]],
          "e": [3, {"e2":3}],
          "f": {
            "f2":true
          }
        }');
      --obj.print;
      -- equivalent to print
      dbms_output.put_line(obj.to_char);
      dbms_output.put_line(pljson_ext.get_string(obj, 'a'));
      dbms_output.put_line(pljson_ext.get_double(obj, 'b'));
      dbms_output.put_line(pljson_ext.get_number(obj, 'b'));
      dbms_output.put_line(pljson_ext.get_double(obj, 'c'));
      dbms_output.put_line(pljson_ext.get_number(obj, 'c'));
      l_bool := pljson_ext.get_bool(obj, 'd[1]');
      dbms_output.put_line(sys.diutil.bool_to_int(l_bool));
      l_bool := pljson_ext.get_bool(obj, 'd[2]');
      dbms_output.put_line(sys.diutil.bool_to_int(l_bool));
      dbms_output.put_line(pljson_ext.get_string(obj, 'd[3]'));
      dbms_output.put_line(pljson_ext.get_number(obj, 'e[1]'));
      dbms_output.put_line(pljson_ext.get_number(obj, 'e[2].e2'));
      l_bool := pljson_ext.get_bool(obj, 'f.f2');
      dbms_output.put_line(sys.diutil.bool_to_int(l_bool));
    END;

    测试用例2:解析JSONArray

    DECLARE
      json_data2 pljson;
      json_data  pljson := pljson('{   "foo": "bar",   "list": [     {"key": "value1"},     {"key": "value2"}   ] }');
      list_value pljson_list;
    
      l_value VARCHAR2(200);
    BEGIN
      list_value := json_ext.get_json_list(json_data, 'list');
    
      dbms_output.put_line('Count = ' || list_value.count);
    
      FOR i IN 1 .. list_value.count LOOP
          
        pljson(list_value.get(i)).get('key').print;
      
        dbms_output.put_line(json_ext.get_string(pljson(list_value.get(i)),
                                                   'key'));
      
        l_value := json_ext.get_string(pljson(list_value.get(i)), 'key');
        dbms_output.put_line(l_value);
      END LOOP;
    END;
  • 相关阅读:
    JS实现对Date Range的认证
    SharePoint 用SafeControl的方式创建能够重复利用的Control
    设计模式详解(链接)
    Asp.net MVC3中进行自定义Error Page
    手动将自定制的WebPart部署到 SharePoint 2010 中
    获取 SharePoint 2010 中所有的User Profile Service Application
    自定义Data Service Providers — (5)最小化的运行时服务
    温总理对软件工作者的勉励
    自定义Data Service Providers —(9)关系
    自定义Data Service Providers — (7)交互式查询
  • 原文地址:https://www.cnblogs.com/huanghongbo/p/9511870.html
Copyright © 2011-2022 走看看