Java讀取json數(shù)據(jù)并存入數(shù)據(jù)庫的操作代碼
Java讀取json數(shù)據(jù)并存入數(shù)據(jù)庫
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");//構(gòu)建JSONArray數(shù)組
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 數(shù)據(jù)庫操作
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 {
// 構(gòu)造URL
URL url = new URL(urlString);
// 打開連接
URLConnection con = url.openConnection();
// 輸入流
InputStream is = con.getInputStream();
// 1K的數(shù)據(jù)緩沖
byte[] bs = new byte[1024];
// 讀取到的數(shù)據(jù)長度
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);
// 完畢,關(guān)閉所有鏈接
os.close();
is.close();
}
5.獲取聚合數(shù)據(jù)車輛服務(wù)
@Test
public void doGetTestOne() {
// 獲得Http客戶端(可以理解為:你得先有一個瀏覽器;注意:實際上HttpClient與瀏覽器是不一樣的)
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 創(chuàng)建Get請求
CloseableHttpResponse response = null;
try {
// 響應(yīng)模型
for(int f=200;f<=300;f++){
HttpGet httpGet = new HttpGet("http://apis.juhe.cn/cxdq/series?brandid=" + f + "&levelid=&key=XXXXXXXXXXXX");
// 由客戶端執(zhí)行(發(fā)送)Get請求
response = httpClient.execute(httpGet);
// 從響應(yīng)模型中獲取響應(yīng)實體
HttpEntity responseEntity = response.getEntity();
System.out.println("響應(yīng)狀態(tài)為:" + response.getStatusLine());
if (responseEntity != null) {
System.out.println("響應(yīng)內(nèi)容長度為:" + responseEntity.getContentLength());
// System.out.println("響應(yīng)內(nèi)容為:" + 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文件把數(shù)據(jù)存入數(shù)據(jù)庫中
//讀取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");//構(gòu)建JSONArray數(shù)組
// JSONArray movies = jobj.getJSONObject("data").getJSONObject("map_set").
// getJSONObject("map_code_set").getJSONObject("mapSet").getJSONArray("polyline");//構(gòu)建JSONArray數(shù)組
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("添加成功!");
}
到此這篇關(guān)于Java讀取json數(shù)據(jù)并存入數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)JAVA son存入數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring中的singleton和prototype的實現(xiàn)
這篇文章主要介紹了Spring中的singleton和prototype的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
logback StatusListener的定義方法源碼解讀
這篇文章主要為大家介紹了logback StatusListener的定義方法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
struts2簡介_動力節(jié)點Java學(xué)院整理
Struts2框架是MVC流程框架,適合分層開發(fā),這篇文章主要為大家詳細介紹了struts2簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Java中ArrayList與順序表的定義與實現(xiàn)方法
ArrayList是一個實現(xiàn)List接口的類,底層是動態(tài)類型順序表,本質(zhì)也就是數(shù)組,動態(tài)主要體現(xiàn)在它的擴容機制,下面這篇文章主要給大家介紹了關(guān)于Java中ArrayList與順序表的定義與實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-07-07
Spring MVC 關(guān)于controller的字符編碼問題
在使用springMVC框架構(gòu)建web應(yīng)用,客戶端常會請求字符串、整型、json等格式的數(shù)據(jù),通常使用@ResponseBody注解使 controller回應(yīng)相應(yīng)的數(shù)據(jù)而不是去渲染某個頁面。2017-03-03

