本文介绍在 java 中使用 jackson 库灵活解析多个结构不一致的 json 文件,统一提取所有 `productid` 字段并去重合并为一个列表,适用于异构 json 数据源的批量处理场景。
在实际开发中,我们常需从多个 JSON 文件中提取相同语义但嵌套路径或结构不同的字段(如 productID)。例如,你提供的两个 JSON 文件:
- JSON №1 是顶层为 JSON 数组,每个元素含 “products”: […] 字段,其中对象含 “productID”;
- JSON №2 是单个 JSON 对象,直接包含 “products”: […] 数组,结构更扁平。
二者虽字段名一致,但根节点类型(ArrayNode vs ObjectNode)和层级不同,无法用单一 POJO 或固定路径硬编码解析。此时应采用 Jackson 的树模型(Tree Model) —— 即 JsonNode,配合动态路径探测与容错遍历,实现“结构无关”的健壮解析。
✅ 推荐方案:基于 JsonNode 的泛化解析
以下是一个完整、可复用的工具方法,支持传入任意数量的 JSON 文件路径,并自动适配两种常见结构: