如何基于Java使用JSON文件生成表格形式报告?
核心实现思路
861KB的JSON属于极小体量的数据源,内存占用峰值不会超过10MB,不需要做流式解析、分片处理这类重优化,核心流程就是「JSON结构解析→字段与表格列映射→按目标格式输出表格」三步,全程避免过度设计。
可落地执行步骤
- 前置准备:先打开你的JSON文件确认结构,明确两个核心信息:一是表格行数据所在的JSON路径(比如根节点就是数组、还是嵌套在
data.items这类子节点下);二是要展示的表格列名和JSON字段的一一对应关系,提前列好映射规则,避免写代码时反复调整。 - 依赖选型:JSON解析直接用Jackson即可,项目如果是SpringBoot栈已经自带,单独使用引入
jackson-databind包就够,不需要额外引入其他JSON库;如果要生成Excel格式报告,引入poi-ooxml包即可,其他纯文本/HTML表格不需要额外依赖。 - JSON解析实现:直接全量读取文件解析成树模型即可,参考代码:
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; public class JsonTableGenerator { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); // 读取JSON文件到内存 JsonNode rootNode = objectMapper.readTree(new File("./target/report.json")); // 定位到表格行对应的数组节点,根据你的实际JSON路径调整 JsonNode rowArray = rootNode.get("data").get("list"); // 后续做数据映射 } }
- 表格数据映射:先把表头按你要展示的顺序存成数组,再遍历刚才拿到的数组节点,逐行取出对应字段的值,统一存到
List<String[]>结构里,遇到空字段直接填充默认值"-",避免后续生成表格错位。 - 按需求输出对应格式的表格:
- 输出Markdown/控制台可直接打印的纯文本表格:直接遍历
List<String[]>,按格式拼接分隔符即可,Markdown表格表头和内容行之间加|---|---|格式的分隔线,单元格之间用|分隔,拼接完直接写入.md文件或者打印到控制台; - 输出Excel(xlsx)格式表格:创建XSSFWorkbook对象,新建Sheet页,逐行创建Row对象填充单元格内容,最后通过FileOutputStream写入到.xlsx文件即可,几千行以内的数据完全不需要用SXSSF流式写,普通API足够;
- 输出HTML格式表格:可以直接拼接
<table>、<tr>、<td>标签,也可以用简单的字符串模板填充,不需要引入重型模板引擎。
- 输出Markdown/控制台可直接打印的纯文本表格:直接遍历
- 收尾校验:生成完表格后核对总行数和JSON里的条目数是否一致,抽查几行数据的字段值是否匹配,避免字段路径写错导致取值为空。
避坑提示:不要为了这个小需求引入多余的报表框架、规则引擎类的依赖,整个实现加起来不到100行代码,越简单的方案越稳定。
内容的提问来源于stack exchange,提问作者Singam Chetty
相关产品推荐
相关产品推荐

