在Java中使用IO流讀取JSON文件非常簡單。以下是一個示例代碼,它使用Java中的BufferedReader類將JSON文件讀取到字符串中:
try { BufferedReader br = new BufferedReader(new FileReader("example.json")); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } String jsonString = sb.toString(); br.close(); // 使用jsonString進行解析 } catch (IOException e) { e.printStackTrace(); }
在上面的代碼中,我們首先實例化一個BufferedReader類實例,并將要讀取的JSON文件的路徑作為參數(shù)傳遞給FileReader。然后我們創(chuàng)建一個StringBuilder實例,使用while循環(huán)讀取文件并將文件內(nèi)容存儲在StringBuilder中。最后我們將StringBuilder轉(zhuǎn)換為字符串,并使用這個字符串進行解析。
在讀取JSON數(shù)據(jù)之后,我們可以使用Java中的任意JSON解析庫來將JSON解析為Java對象。以下是一個使用Jackson庫將JSON解析為一個HashMap的示例代碼:
import com.fasterxml.jackson.databind.ObjectMapper; try { BufferedReader br = new BufferedReader(new FileReader("example.json")); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } String jsonString = sb.toString(); br.close(); ObjectMapper objectMapper = new ObjectMapper(); HashMapjsonMap = objectMapper.readValue(jsonString, HashMap.class); // 使用jsonMap進行操作 } catch (IOException e) { e.printStackTrace(); }
在上面的代碼中,我們首先實例化了一個ObjectMapper對象。接著,我們調(diào)用readValue()方法,將JSON字符串和HashMap類傳遞給它。最后,我們將返回的HashMap對象存儲在一個變量中,供我們使用。