Java是一種強(qiáng)大的編程語言,提供了許多處理數(shù)據(jù)的工具。其中,JSON作為一種輕量級數(shù)據(jù)交換格式,被廣泛使用。在Java中,我們可以使用一些庫來解析JSON格式數(shù)據(jù),像Jackson和Gson等。
有時(shí)候我們需要將解析出來的JSON數(shù)據(jù)存儲到Excel文件中,這時(shí)候我們可以使用Apache POI庫。以下是一個使用Jackson和POI庫實(shí)現(xiàn)JSON解析并保存到Excel文件的示例代碼:
import java.io.File; import java.io.FileOutputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonToExcel { public static void main(String[] args) { try { // 讀取JSON文件并解析 ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = objectMapper.readTree(new File("data.json")); // 創(chuàng)建Excel文件 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("JSON Data"); // 添加表頭 Row headerRow = sheet.createRow(0); headerRow.createCell(0).setCellValue("Name"); headerRow.createCell(1).setCellValue("Age"); headerRow.createCell(2).setCellValue("Email"); // 遍歷JSON數(shù)據(jù)并添加到Excel表格中 Iteratorelements = rootNode.elements(); int rowIndex = 1; while (elements.hasNext()) { JsonNode node = elements.next(); Row row = sheet.createRow(rowIndex++); Cell nameCell = row.createCell(0); nameCell.setCellValue(node.get("name").asText()); Cell ageCell = row.createCell(1); ageCell.setCellValue(node.get("age").asInt()); Cell emailCell = row.createCell(2); emailCell.setCellValue(node.get("email").asText()); } // 保存Excel文件 FileOutputStream fileOut = new FileOutputStream("data.xlsx"); workbook.write(fileOut); fileOut.close(); workbook.close(); System.out.println("JSON data saved to Excel file successfully!"); } catch (Exception e) { e.printStackTrace(); } } }
在這個例子中,我們首先使用Jackson庫讀取JSON文件并解析成一個樹形節(jié)點(diǎn)結(jié)構(gòu)。然后,我們使用POI庫創(chuàng)建Excel文件,并添加表頭行。接著,我們遍歷JSON數(shù)據(jù),將每個節(jié)點(diǎn)的值寫入新行中。最后,我們使用POI庫保存Excel文件。
關(guān)于Jackson和POI庫的更多信息,請參考官方文檔。這里只是展示了簡單的用法,可以根據(jù)自己的需求進(jìn)行定制。