Java接口可以使用JSON格式進行數據傳輸,而對于需要傳輸圖片的場景,我們可以將圖片轉換為base64編碼的字符串后,將其作為JSON數據的一部分進行傳輸。以下是實現該過程的示例代碼:
public String getImageJSON(String filename) throws IOException { FileInputStream imageInFile = new FileInputStream(filename); byte imageData[] = new byte[imageInFile.available()]; imageInFile.read(imageData); String imageDataString = Base64.getEncoder().encodeToString(imageData); imageInFile.close(); JSONObject jsonObj = new JSONObject(); jsonObj.put("image", imageDataString); return jsonObj.toJSONString(); }
上述代碼中,首先使用FileInputStream讀取圖片文件,并將其轉換為byte數組。然后使用Java自帶的Base64編碼器將byte數組轉換為字符串,并存儲在JSON對象中。最后,使用JSON對象的toJSONString()方法將JSON數據轉換為字符串并返回給調用方即可。
在接收方獲取JSON數據后,我們可以使用以下代碼將base64字符串轉換為圖片:
String imageDataString = (String) jsonObj.get("image"); byte[] imageData = Base64.getDecoder().decode(imageDataString); FileOutputStream imageOutFile = new FileOutputStream("output.jpg"); imageOutFile.write(imageData); imageOutFile.close();
上述代碼中,首先獲取JSON數據中的base64字符串,然后使用Java自帶的Base64解碼器將其轉換為byte數組。最后將byte數組寫入到文件中即可。