动态解析Json数据插入数据库

本文介绍了一种动态获取JSON数据并将其转换为数据库表的方法,使用MyBatis框架实现动态建表和数据插入,适用于不确定数据格式的情况。

需求:动态获取其他网站的数据,获取得到的数据是json格式数据,数据格式不定,所以得动态生成数据表将数据插入数据库,使用框架为mybatis

列表数据如下

{
   
   
    "rtnCode": "000000",
    "rtnMsg": "success",
    "data": {
   
   
        "totalPage": "1",
        "totalSize": "1",
        "list": [
            {
   
   
                "name": "xxx",
                "idCard": "35xxxxxxxxxxxxxxxx",
                "guideNum": "D-3522-001332",
                "gender": "女",
                "rank": "初级",
                "date": "2017-12-08",
                "approver": "xxx",
                "id": "1886351"
            }
        ]
    }
}

详情数据如下

{
   
   
    "rtnCode": "000000",
    "rtnMsg": "success",
    "data": {
   
   
        "name": "xxx",
        "gender": "女",
        "spell": " ",
        "birthday": "1991-05-12",
        "idCard": "35xxxxxxxxxxxxxxxxxxxx",
        "validDate": "",
        "guideNum": "D-3522-001332",
        "qualificationCode": "DZG2006JXXXX",
        "randAndLanguage": " 普通话--初级    ",
        "nation": "汉族",
        "tel": "134xxxxxxxx",
        "organization": "xx市旅游协会导游工作部门",
        "touristAdministration": "xx市旅游发展委员会",
        "photo_front": "http://xxx.com/upload_a137919f030f8458761d202c468f2c2c.jpg",
        "photo_reverse": "http://xxx.com/upload_f94f8ca17c9078a82180e4f99b4ce854.jpg",
        "photo": "http://xxx.com/upload_d790b665898f74c39e8515e645857d3a.jpg",
        "result": "通过",
        "approver": "xxx",
        "company": "xx市旅游发展委员会"
    }
}

解析Json(请求到的数据假设最多只有三级,只处理到三级)

String st =  Post.sendHtpps("aaaaaa",taskConfig.getTask_api());
          if(st!=null) {
   
   
               JSONObject json1 =  JSONObject.parseObject(st);
           String code=json1.getString("rtnCode");
           if("900003".equals(code)) {
   
   
                String rtnCode="";
                String rtn="";
                for(int i=0;i<3;i++) {
   
   
                     rtn=loginConfigService.requestLoginConfig(taskConfig.getLogin_config_id());
                     if(rtn!=null) {
   
   
                          JSONObject json =  JSONObject.parseObject(rtn);
                       //获取item,得到json数组
                      rtnCode=json.getString("rtnCode");
                      System.out.println("正在重新登录。。。"+rtnCode);
                      if("000000".equals(rtnCode)) {
   
   
                           task(taskConfig);
                           break;
                      }
                     }
                }
           }
               else 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值