标签归档:Json

Oracle PLSQL Json类接口例子

说明:此段例子程序来源公司闫同事,需要json安装文件的,可留言索取。

例子程序:

–物料LIST结果解析
DECLARE
  l_item_info json;
  l_item_list json_list;
  l_item_line json;

  l_ret_code       VARCHAR2(100);
  l_ret_msg        VARCHAR2(100);
  l_json_list_data json_list;
  l_temp_line      json;
  l_erpcode        VARCHAR2(100);
  l_itemno         VARCHAR2(100);
  l_type           VARCHAR2(100);

BEGIN
  l_item_info := json();

  l_item_info.put('code',
                  '1');
  l_item_info.put('message',
                  '调用成功');

  l_item_list := json_list();

  –物料1
  l_item_line := json();
  l_item_line.put('erpCode',
                  '10000001');
  l_item_line.put('itemNo',
                  '22222222222');
  l_item_line.put('type',
                  '4');
  dbms_output.put_line(json_ext.get_string(l_item_line,
                                           'erpCode') || '是:');
  l_item_line.print;
  dbms_output.put_line('—————————–');
  l_item_list.append(l_item_line.to_json_value);

  –物料2
  l_item_line := json();
  l_item_line.put('erpCode',
                  '10000003');
  l_item_line.put('itemNo',
                  '333333333333');
  l_item_line.put('type',
                  '2');
  dbms_output.put_line(json_ext.get_string(l_item_line,
                                           'erpCode') || '是:');
  l_item_line.print;
  dbms_output.put_line('—————————–');
  l_item_list.append(l_item_line.to_json_value);

  –物料LIST构成
  dbms_output.put_line('l_item_list是:');
  l_item_list.print;
  dbms_output.put_line('—————————–');

  –返回结果整体构成
  l_item_info.put('data',
                  l_item_list.to_json_value);
  dbms_output.put_line('l_item_info是:');
  l_item_info.print;
  dbms_output.put_line('—————————–');

  –返回结果解析
  l_ret_code := json_ext.get_string(l_item_info,
                                    'code');
  l_ret_msg  := json_ext.get_string(l_item_info,
                                    'message');

  dbms_output.put_line('解析结果:');
  dbms_output.put_line('l_ret_code: ' || l_ret_code);
  dbms_output.put_line('l_ret_msg: ' || l_ret_msg);

  IF l_ret_code = '1' THEN
    l_json_list_data := json_list(l_item_info.get('data'));
 
    FOR i IN 1 .. l_json_list_data.count()
    LOOP
      l_temp_line := json(l_json_list_data.get(i));
   
      l_erpcode := json_ext.get_string(l_temp_line,
                                       'erpCode');
      l_itemno  := json_ext.get_string(l_temp_line,
                                       'itemNo');
      l_type    := json_ext.get_string(l_temp_line,
                                       'type');
   
      dbms_output.put_line('l_erpcode: ' || l_erpcode);
      dbms_output.put_line('l_itemNo: ' || l_itemno);
      dbms_output.put_line('l_type: ' || l_type);
   
    END LOOP;
 
  END IF;

END;

——————————————————————————

以下是输出结果:

10000001是:
{
  "erpCode" : "10000001",
  "itemNo" : "22222222222",
  "type" : "4"
}
—————————–
10000003是:
{
  "erpCode" : "10000003",
  "itemNo" : "333333333333",
  "type" : "2"
}
—————————–
l_item_list是:
[{
  "erpCode" : "10000001",
  "itemNo" : "22222222222",
  "type" : "4"
}, {
  "erpCode" : "10000003",
  "itemNo" : "333333333333",
  "type" : "2"
}]
—————————–
l_item_info是:
{
  "code" : "1",
  "message" : "\u8C03\u7528\u6210\u529F",
  "data" : [{
    "erpCode" : "10000001",
    "itemNo" : "22222222222",
    "type" : "4"
  }, {
    "erpCode" : "10000003",
    "itemNo" : "333333333333",
    "type" : "2"
  }]
}
—————————–
解析结果:
l_ret_code: 1
l_ret_msg: 调用成功
l_erpcode: 10000001
l_itemNo: 22222222222
l_type: 4
l_erpcode: 10000003
l_itemNo: 333333333333
l_type: 2