Gson是一個開源的Java庫,用于將Java對象轉換為JSON格式,或將JSON格式轉換為Java對象。
在Gson庫中,有兩種方式讀取JSON文件:
第一種方式是將整個JSON文件讀取為一個字符串,然后使用Gson庫的fromJson()方法將JSON字符串轉換為Java對象。
// 讀取JSON文件為字符串 String jsonString = new String(Files.readAllBytes(Paths.get("data.json"))); // 將JSON轉換為Java對象 MyData data = gson.fromJson(jsonString, MyData.class);
第二種方式是使用Gson庫的JsonReader類,以流式方式逐行讀取JSON文件中的數據,并在讀取過程中創建Java對象。
// 創建JsonReader對象 JsonReader reader = new JsonReader(new FileReader("data.json")); // 開始讀取 reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("name")) { String value = reader.nextString(); data.setName(value); } else if (name.equals("age")) { int value = reader.nextInt(); data.setAge(value); } else if (name.equals("score")) { double value = reader.nextDouble(); data.setScore(value); } else if (name.equals("isPassed")) { boolean value = reader.nextBoolean(); data.setPassed(value); } } // 讀取完成后關閉JsonReader對象 reader.endObject(); reader.close();
使用JsonReader逐行讀取JSON文件的優點是可以減少內存占用,因為只有當前行數據被讀取時,才會創建對應的Java對象。