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


猜你喜欢
- 需求使用 spring-boot 项目开发中,项目启动时“非常”慢的。如果每次修改代码或静态资源文件后都需要重新启动项目,这是多么痛苦的事。
- 写在前面:今天用保存QQ账号和密码的实战演练,带大家掌握Android存储中最基本的文件存储方式文件存储是Android中最基本的一种数据存
- 本文实例分析了java遍历Map的几种方法。分享给大家供大家参考,具体如下:Java代码:Map<String,String>
- Android中的Adapter在自定义显示列表时非常有用,比如SimpleAdapter,它的构造函数是:public SimpleAda
- 1.Mybatis的Dao层实现1.1 传统开发方式1.1.1编写UserDao接口public interface UserDao { &
- ASP.NET为开发人员提供了一套简单实用的服务器控件来验证用户输入的信息是否有效。这些控件的主要属性有id(控件的唯一id)、Contro
- 表:需求:将表中的数据,按照一级二级分类返回给前端json数据代码实现:java代码: public class ResultIndustr
- 今天给大家分享纯注解版spring与mybatis的整合mybatis包下:有这几个,上面图片没有展开配置Bean:MyBatisAutoC
- Eureka注册的服务之间互相调用1.请求方启动类添加注解,扫描Eureka 中的全部服务@SpringBootApplication@En
- 1.理解全过程1.1.概述需要具备的知识Socket网络编程反向代理的理解平滑加权轮询算法的理解线程池的理解目的:实现Socket 集群服务
- 上期回顾上期我们主要介绍了排序的基本认识,以及四个排序,分别是直接插入排序,希尔排序,选择排序,堆排序,从这些排序中,了解了算法的实现,以及
- 本文实例讲述了Android编程实现震动与振铃的方法。分享给大家供大家参考,具体如下:1、Android的震动实现——Vibrator类(1
- 利用Java连接MySQL做登陆界面,供大家参考,具体内容如下1、首先需要建立一个类,在这里,我命名为newLoginnewLogin类的代
- 在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileupload组件
- 这篇文章主要介绍了通过Java实现bash命令过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 简介Log4J 是 Apache 的一个开源项目(官网 http://jakarta.apache.org/log4j)
- 一、创建项目1.File->new->project;2.选择“Spring Initializr”,点击next;(jdk1.
- 选择排序:(Selection sort)是一种简单直观的排序算法,也是一种不稳定的排序方法。选择排序的原理一组无序待排数组,做升序排序,我
- 本文实例为大家分享了android view实现横向滑动选择的具体代码,供大家参考,具体内容如下做文字编辑,从网上找来的。Horizonta
- 一. 多维数组1. 概念多维数组可以看成是数组的数组。 比如二维数组就是一个特殊的一维数组,它的每个元素都是一个一维数组。其他多维数组的概念