java獲取本地json格式的內容
阿新 • • 發佈:2021-08-19
前言
該功能模組基於springBoot,自己在開發中遇到相關功能開發,總結如寫:
1.首先將所需要獲取的json檔案放在專案resource目錄下:
2.所需要的pom依賴:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
3.讀取JSON工具類
/** * 讀取json檔案,返回json串 * @param fileName * @return */ 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; } }
4.測試類
古今成大事者,不唯有超世之才,必有堅韌不拔之志!public class TestJson { public static void main(String[] args) throws Exception{ // 假設我下面json文件有10個 名字:1 -10.json for (int j = 1; j < 10; j++) { String srcpath = j+".json"; String path = ElectronicWaybillController.class.getClassLoader().getResource(srcpath).getPath(); String s = readJsonFile(path); JSONObject jobj = JSON.parseObject(s); //構建JSONArray陣列 JSONArray movies = jobj.getJSONArray("content"); for (int i = 0 ; i < movies.size();i++){ JSONObject key = (JSONObject)movies.get(i); ElectronicWaybillDetailsDTO electronicWaybillDetailsDTO = new ElectronicWaybillDetailsDTO(); electronicWaybillDetailsDTO.setDriverName((String)key.get("driverName")); electronicWaybillDetailsDTO.setAreaCode((String)key.get("organCode")); electronicWaybillDetailsDTO.setCanBodyNo((String)key.get("tankNum")); 這裡欄位較多,以上寫以上幾個作為代表 electronicWaybillService.insert(electronicWaybillDetailsDTO); } }