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文件方式一
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");
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下载图片保存到本地
public static void download(String urlString, int i) throws Exception {
URL url = new URL(urlString);
URLConnection con = url.openConnection();
InputStream is = con.getInputStream();
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() {
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
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");
response = httpClient.execute(httpGet);
HttpEntity responseEntity = response.getEntity();
System.out.println("响应状态为:" + response.getStatusLine());
if (responseEntity != null) {
System.out.println("响应内容长度为:" + responseEntity.getContentLength());
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();
}
}
}