Java读取json数据并存入数据库的操作代码
作者:@(木) 发布时间:2023-09-23 06:00:57
标签:JAVA,son,存入数据库
Java读取json数据并存入数据库
1. pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.students.json文件
{
"students": [
{
"stuId": 1,
"stuName": "meilanfang",
"stuAge": 93
},
{
"stuId": 2,
"stuName": "zhangguorong",
"stuAge": 92
},
{
"stuId": 3,
"stuName": "huangjiaju",
"stuAge": 91
}
]
}
3.读取json文件方式一
//读取json文件
public static String readJsonFile(String fileName) {
String jsonStr = "";
try {
File jsonFile = new File(fileName);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String path = JsonTest.class.getClassLoader().getResource("students.json").getPath();
String s = readJsonFile(path);
JSONObject jobj = JSON.parseObject(s);
JSONArray student = jobj.getJSONArray("students");//构建JSONArray数组
for (int i = 0 ; i < student.size();i++){
JSONObject key = (JSONObject)student.get(i);
int stuId= (Integer)key.get("stuId");
String stuName= (String)key.get("stuName");
int stuAge= (Integer)key.get("stuAge");
#TODO 数据库操作
System.out.println(stuId);
System.out.println(stuName);
System.out.println(stuAge);
}
}
4.java 通过url下载图片保存到本地
//java 通过url下载图片保存到本地
public static void download(String urlString, int i) throws Exception {
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
String filename = "D:\\图片下载/" + i + ".jpg"; //下载路径及下载图片名称
File file = new File(filename);
FileOutputStream os = new FileOutputStream(file, true);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
System.out.println(i);
// 完毕,关闭所有链接
os.close();
is.close();
}
5.获取聚合数据车辆服务
@Test
public void doGetTestOne() {
// 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 创建Get请求
CloseableHttpResponse response = null;
try {
// 响应模型
for(int f=200;f<=300;f++){
HttpGet httpGet = new HttpGet("http://apis.juhe.cn/cxdq/series?brandid=" + f + "&levelid=&key=XXXXXXXXXXXX");
// 由客户端执行(发送)Get请求
response = httpClient.execute(httpGet);
// 从响应模型中获取响应实体
HttpEntity responseEntity = response.getEntity();
System.out.println("响应状态为:" + response.getStatusLine());
if (responseEntity != null) {
System.out.println("响应内容长度为:" + responseEntity.getContentLength());
// System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
JSONObject object = JSONObject.parseObject(EntityUtils.toString(responseEntity));
JSONArray arr = object.getJSONArray("result");
for (int i = 0; i < arr.size(); i++) {
JSONObject j = arr.getJSONObject(i);
CarBrandDetail vo = new CarBrandDetail();
vo.setId(j.getInteger("id"));
vo.setName(j.getString("name"));
vo.setBrandId(j.getInteger("brandid"));
vo.setLevelId(j.getInteger("levelid"));
vo.setLevelName(j.getString("levelname"));
vo.setSname(j.getString("sname"));
vo.setCreateTime(new Date());
int insert = carBrandMapper.insert(vo);
if (insert > 0) {
System.out.println("true");
}
}
}
} }catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 释放资源
if (httpClient != null) {
httpClient.close();
}
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ps:java读取json文件把数据存入数据库中
//读取json文件
public static String readJsonFile(String fileName) {
String jsonStr = "";
try {
File jsonFile = new File(fileName);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public Result<?> test() {
String s = readJsonFile("D:\\marks.json");
JSONObject jobj = JSON.parseObject(s);
JSONArray jsonArray = jobj.getJSONObject("data").getJSONObject("map_set").getJSONObject("map_code_set")
.getJSONObject("mapSet").getJSONArray("markers");//构建JSONArray数组
// JSONArray movies = jobj.getJSONObject("data").getJSONObject("map_set").
// getJSONObject("map_code_set").getJSONObject("mapSet").getJSONArray("polyline");//构建JSONArray数组
for (int i = 0; i < jsonArray.size(); i++) {
LongMarchStation longMarchStation = new LongMarchStation();
JSONObject key = (JSONObject) jsonArray.get(i);
JSONObject jsonObject = ((JSONObject) jsonArray.get(i)).getJSONObject("callout");
String id = key.get("id") + "";
String latitude = key.get("latitude") + "";
String longitude = key.get("longitude") + "";
Integer min = (Integer) key.get("min");
Integer max = (Integer) key.get("max");
String iconPath = (String) key.get("iconPath");
String name = (String) jsonObject.get("content");
longMarchStation.setId(id);
longMarchStation.setLatitude(latitude);
longMarchStation.setLongitude(longitude);
longMarchStation.setMax(max);
longMarchStation.setMin(min);
longMarchStation.setName(name);
longMarchStation.setIconPath(iconPath);
longMarchStationService.save(longMarchStation);
}
return Result.ok("添加成功!");
}
来源:https://blog.csdn.net/hsadfdsahfdsgfds/article/details/112704702
0
投稿
猜你喜欢
- 对某个类型中的方法进行拦截,然后加入固定的业务逻辑,这是AOP面向切面编程可以做的事,在springboot里实现aop的方法也有很多, s
- 简介Android给我们提供了一种轻量级的异步任务类AsyncTask。该类中实现异步操作,并提供接口反馈当前异步执行结果及进度,这些接口中
- 最近的项目中要实现一个聊天的功能,类似于斗鱼TV的聊天室功能,与服务器端人商量后决定用WebSocket来做,但是在这之前我只知道Socke
- java使用stream实现list中对象属性的合并:根据两个List中的某个相同字段合并成一条List,包含两个List中的字段一、前言为
- 1)首先启动hadoop2个进程,进入hadoop/sbin目录下,依次启动如下命令[root@node02 sbin]# pwd/usr/
- JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展
- 前言在电商的应用中,最常见的就是在首页或完成某事件之后,弹出一堆的活动/广告。假如重叠弹出,很丑,给用户的体验也不好,所以一般都会依次依条件
- 序言在flutter开发中,我们使用 bloc 框架,基于状态变更进行响应式开发。本篇文章,小轰将 bloc 核心业务块进行拆解简化,聊一聊
- JDK提供的流继承了四大类:InputStream(字节输入流)、OutputStream(字节输出流)、Reader(字符输入流)、Wri
- 本文实例为大家分享了C#超市收银系统设计的具体代码,供大家参考,具体内容如下1.登录界面代码如下:using System;using Sy
- HashMap和HashTable,这二者的区别经常被别人问起,今天在此总结一下。(一)继承的历史不同public class
- Android中获取资源 id 及资源 id 的动态获取我们平时获取资源是通过 findViewById 方法进行的,比如我们常
- 本文实例为大家分享了Android实现双曲线折线图的具体代码,供大家参考,具体内容如下先看一下效果图1.先下载jar包 mpandroidc
- 通过本篇文章主要给大家讲解了在JAVA开发中Servlet3.0异步处理遇到的问题以及处理办法,以下是具体内容:Servlet 3.0 开始
- C# 关于Invoke首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke
- 一、问题描述今天使用SDK Manager将Android SDK的版本更新到了Android 5.1的版本,eclipse创建androi
- 内容简介本篇将介绍 Flutter 中如何完成图片上传,以及上传成功后的表单提交。涉及的知识点如下:图片选择插件wechat_assets_
- 树的结构说得差不多了,现在我们来说说一种数据结构叫做哈希表(hash table),哈希表有是干什么用的呢?我们知道树的操作的时间复杂度通常
- 本文介绍了Flutter 实现下拉刷新上拉加载的示例代码,分享给大家,具体如下:效果图 使用方法添加依赖depende
- SpringCloud 整合ribbon的时候出现了这个问题java.lang.IllegalStateException: No inst