当前位置:首页 > 编程笔记 > 正文
已解决

【java调取第三方接口,获取数据并保存至数据库】

来自网友在路上 171871提问 提问时间:2023-10-21 06:02:25阅读次数: 71

最佳答案 问答题库718位专家为你答疑解惑

java调取第三方接口,获取数据并保存至数据库

@Overridepublic void doPost() {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";String url = "http://xxx.xxx.xxx:8080/xxx/xxx/xxx";SaveProjectDTO saveProjectDTO = new SaveProjectDTO();List<SaveProjectEntityDTO> list = new ArrayList<>();try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type", "application/json;charset=utf-8");httpPost.setEntity(new StringEntity("{}"));// 执行http请求response = httpClient.execute(httpPost);//resultString 就是调取第三方接口后给的返回值resultString = EntityUtils.toString(response.getEntity(), "utf-8");//使用JSONObject.parseObject方法将字符串转化为SaveProjectDTO实体类(SaveProjectDTO类中的字段一定要对应返回值类型)saveProjectDTO = JSONObject.parseObject(resultString, SaveProjectDTO.class);//应为返回值中存在code,msg,success等信息,所以再使用JSONObject.parseArray方法将data中的数组取出来保存list = JSONObject.parseArray(saveProjectDTO.getData(),SaveProjectEntityDTO.class);List<FwqProject> fwqProjects = new ArrayList<>();for (SaveProjectEntityDTO saveProjectEntityDTO : list){FwqProject fwqProject = new FwqProject();fwqProject.setzId(saveProjectEntityDTO.getId());fwqProject.setName(saveProjectEntityDTO.getName());fwqProject.setStatus(saveProjectEntityDTO.getStatus());fwqProjects.add(fwqProject);}fwqProjectService.saveOrUpdateBatch(fwqProjects);} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}}
@Testpublic void test1(){String text = "{\"mode\":\"满减打折\",\"details\":[{\"order\":0,\"discountPercent\":10,\"min\":0,\"max\":100},{\"order\":1,\"discountPercent\":15,\"min\":100,\"max\":500}]}";JSONObject jsonObject = JSONObject.parseObject(text);String arrayStr = jsonObject.getString("details");List<Discount> list = JSONObject.parseArray(arrayStr,Discount.class);for(Discount discount:list){System.out.println(discount.toString()+"-------------");}}@Testpublic void test2(){String text = "{\"mode\":\"满减打折\",\"details\":[{\"order\":0,\"discountPercent\":10,\"min\":0,\"max\":100},{\"order\":1,\"discountPercent\":15,\"min\":100,\"max\":500}]}";JSONObject jsonObject = JSONObject.parseObject(text);JSONArray jsonArray = jsonObject.getJSONArray("details");for(int i = 0; i< jsonArray.size(); i++){// 写法一:// Discount discount = (Discount) jsonArray.get(i);// 写法二:JSONObject json = jsonArray.getJSONObject(i);Discount discount = json.toJavaObject(Discount.class);System.out.println(discount.toString()+"------------------");}}

fastjson判断一个json是jsonArray还是jsonObject几种方式


```javaObject object = JSON.parse(dataStr);if (object instanceof JSONArray) {System.out.println("我是jsonArray");} else {System.out.println("我是jsonObject");}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【java调取第三方接口,获取数据并保存至数据库】":http://eshow365.cn/6-20697-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!