java解析json文件的核心是“读取文件内容+解析字符串为结构化数据”,推荐用jackson(结构固定时反序列化为pojo,动态结构时用jsonnode)、org.json(轻量原生,需手动处理编码)或gson(泛型友好,api简洁)。

Java 解析 JSON 文件,核心是“读取文件内容 + 解析字符串为结构化数据”。不依赖外部库也能做,但推荐用成熟第三方库,省去手动处理编码、嵌套、异常等细节。
用 Jackson 读取并转成 Java 对象(最常用)
适合结构固定、有明确 POJO 类型的场景,比如配置文件或 API 响应。
- 先加 Maven 依赖:
com.fasterxml.jackson.core:jackson-databind - 定义对应字段的 Java 类(必须有无参构造器 + getter/setter)
- 用
ObjectMapper的readValue(File, Class)直接从文件反序列化
示例:读取 user.json 到 User 对象
User user = mapper.readValue(new File("user.json"), User.class);
用 Jackson 读取为通用结构(JsonNode)
适合结构不固定、字段动态、或只想查几个字段的场景,比如解析日志或多变配置。
- 调用
mapper.readTree(File)得到JsonNode根节点 - 用
.get("key")、.path("nested.field")、.elements()等方法导航访问 - 支持类型安全获取:如
node.get("age").asInt()、node.get("active").asBoolean()
无需提前定义类,也避免因字段缺失导致反序列化失败。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
用 org.json(轻量原生风格)
适合小项目、教学演示或不想引入额外依赖的情况,但需手动处理编码和异常。
- 添加依赖:
org.json:json - 用
FileReader读文件 → 转为字符串 → 构造JSONObject或JSONArray - 注意 UTF-8 编码:建议用
InputStreamReader指定"UTF-8"防止中文乱码
示例关键步骤:
String content = Files.readString(Paths.get("config.json"), StandardCharsets.UTF_8);JSONObject obj = new JSONObject(content);
String name = obj.getString("name");
JSONArray items = obj.getJSONArray("list");
用 Gson(简洁易上手)
Google 出品,API 更扁平,对 null 和泛型支持友好,适合快速开发。
- 加依赖:
com.google.code.gson:gson - 创建
Gson实例,调用gson.fromJson(Reader, Type) - 支持直接解析带泛型的集合,如
List<item></item>,用TypeToken包装
示例:
Gson gson = new Gson();try (Reader reader = Files.newBufferedReader(Paths.get("data.json"), StandardCharsets.UTF_8)) {
List
- >(){}.getType());
}
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










