Java讀取json數(shù)據(jù)并存入數(shù)據(jù)庫(kù)的操作代碼
Java讀取json數(shù)據(jù)并存入數(shù)據(jù)庫(kù)
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ù)庫(kù)操作 System.out.println(stuId); System.out.println(stuName); System.out.println(stuAge); } }
4.java 通過(guò)url下載圖片保存到本地
//java 通過(guò)url下載圖片保存到本地 public static void download(String urlString, int i) throws Exception { // 構(gòu)造URL URL url = new URL(urlString); // 打開(kāi)連接 URLConnection con = url.openConnection(); // 輸入流 InputStream is = con.getInputStream(); // 1K的數(shù)據(jù)緩沖 byte[] bs = new byte[1024]; // 讀取到的數(shù)據(jù)長(zhǎng)度 int len; // 輸出的文件流 String filename = "D:\\圖片下載/" + i + ".jpg"; //下載路徑及下載圖片名稱 File file = new File(filename); FileOutputStream os = new FileOutputStream(file, true); // 開(kāi)始讀取 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客戶端(可以理解為:你得先有一個(gè)瀏覽器;注意:實(shí)際上HttpClient與瀏覽器是不一樣的) CloseableHttpClient httpClient = HttpClientBuilder.create().build(); // 創(chuàng)建Get請(qǐng)求 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請(qǐng)求 response = httpClient.execute(httpGet); // 從響應(yīng)模型中獲取響應(yīng)實(shí)體 HttpEntity responseEntity = response.getEntity(); System.out.println("響應(yīng)狀態(tài)為:" + response.getStatusLine()); if (responseEntity != null) { System.out.println("響應(yīng)內(nèi)容長(zhǎng)度為:" + 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ù)庫(kù)中
//讀取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ù)庫(kù)的文章就介紹到這了,更多相關(guān)JAVA son存入數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBootTest測(cè)試時(shí)不啟動(dòng)程序的問(wèn)題
這篇文章主要介紹了SpringBootTest測(cè)試時(shí)不啟動(dòng)程序的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Java JVM原理與調(diào)優(yōu)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。下面通過(guò)本文給大家介紹jvm原理與調(diào)優(yōu)相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-04-04springboot創(chuàng)建監(jiān)聽(tīng)和處理事件的操作方法
這篇文章主要介紹了springboot創(chuàng)建監(jiān)聽(tīng)和處理事件的操作方法,使用Spring Boot的事件機(jī)制來(lái)監(jiān)聽(tīng)和處理事件有多種優(yōu)勢(shì),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-07-07Java實(shí)現(xiàn)threadLocal線程池獲取
本文主要介紹了Java實(shí)現(xiàn)threadLocal線程池獲取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07idea為java程序添加啟動(dòng)參數(shù)的問(wèn)題解析(program?arguments,vm?arguments,Envi
這篇文章主要介紹了idea為java程序添加啟動(dòng)參數(shù)的問(wèn)題解析(program?arguments,vm?arguments,Environment?variable)并在程序中獲取使用,本文給大家分享問(wèn)題描述及解決方法,需要的朋友可以參考下2023-09-09Spring Boot中如何使用Convert接口實(shí)現(xiàn)類型轉(zhuǎn)換器
這篇文章主要介紹了Spring Boot中使用Convert接口實(shí)現(xiàn)類型轉(zhuǎn)換器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08