Java调用接口获取json数据解析后保存到数据库

文章目录

1.在yml文件中配置自己定义的接口URL

2.在Controller中添加请求方法和路径

3.在Service中添加方法

4.在ServiceImpl中实现方法


今天给大家带来一个调用接口,来获取数据解析后再保存到数据库中的业务,业务中的Mapper和实体类我就不在这里写了,相信大家都会写新增的SQL和定义实体类。

下面是我写的业务代码,有什么建议可以给我评论留言。


1.在yml文件中配置自己定义的接口URL

    //自己定义的JSON接口URL
    blacklist_data_url: 接口URL

2.在Controller中添加请求方法和路径

    /**
     * @Title: 查询
     * @Description: 查询车辆的记录
     * @Author: 半度纳
     * @Date: 2022/9/27 17:33
     */
    @GetMapping("/Blacklist")
    public void selectBlacklist(){
        boolean a = imBuBlacklistService.selectBlacklist();//调用业务层方法
    }

3.在Service中添加方法

	/**
     * @Title: 查询
     * @Description: 查询车辆的记录
     * @Author: 半度纳
     * @Date: 2022/9/27 17:33
     * @return
     */
    public boolean selectBlacklist();//返回值类型没要求

4.在ServiceImpl中实现方法

	import cn.hutool.json.JSONArray;
    import cn.hutool.json.JSONObject;
    import com.alibaba.fastjson2.JSON;


    @Value("${blacklist_data_url}")
    public String blacklist_data_url;//接口URL


	/**
     * @Title: 查询
     * @Description: 查询车辆的记录
     * @Author: 半度纳
     * @Date: 2022/9/27 17:33
     * @return
     */
    @Override
    public boolean selectBlacklist() {
        //获取的JSON接口数据(在输出测试时sendGet方法可能会自动输出,具体需看底层代码)
        String list= HttpUtils.sendGet(blacklist_data_url);
        JSONObject j = JSON.parseObject(list);//将获取的JSON数据存储到变量中
        if(j.getBoolean("success")){//获取success判断是否为空
            JSONObject jsonData = j.getJSONObject("body");//解析JSON的body
        	JSONArray jsonArray = jsonData.getJSONArray("data");//解析JSON的data数据
        	JSONObject row = null;//定义一个空变量
        	ImBuBlacklist buBlacklist=new ImBuBlacklist();//new一个实体类用来接收数据
        	for (int y = 0; y < jsonArray.size(); ++y) {//循环将JSON数据存储到数据库中
            	buBlacklist = new ImBuBlacklist();//new一个实体类存储数据
            	row = jsonArray.getJSONObject(y);//获取数组中的数据
           		//设置获取到的JSON号牌号码到实体类的相同字段中
            	buBlacklist.setPlateNumber(row.getString("mechanicalNumber"));
            	//设置获取到的JSON车辆类型到实体类的相同字段中
            	buBlacklist.setVehicleType(row.getString("machType"));
            	//设置获取到的JSON检查日期到实体类的相同字段中
           		buBlacklist.setExamineDate(row.getDate("createDate"));
            	//设置获取到的JSON检查地点到实体类的相同字段中
            	buBlacklist.setExamineAddress(row.getString("machineAddr"));
            	//设置获取到的JSON违规行为到实体类的相同字段中
            	buBlacklist.setIllegalBehavior(row.getString("joinTheBlacklistReason"));
            	//设置获取到的JSON黑名单类型到实体类的相同字段中
            	buBlacklist.setBlacklistType(row.getInteger("violations"));
            	//通过mapper的新增方法,把实体类中的JSON数据存到数据库中
            	imBuBlacklistMapper.insertImBuBlacklist(buBlacklist);
        	}
        	return true;//自己定义的返回值(没有用)
        }else{
            return false;
        }
    }

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半度纳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值