当前位置: 代码网 > it编程>编程语言>Java > 在Java中读取和解析JSON文件的示例代码

在Java中读取和解析JSON文件的示例代码

2025年06月08日 Java 我要评论
json基础概念json(javascript object notation)是一种轻量级数据交换格式,具有以下核心特征:​​简洁性​​:纯文本格式,易于阅读和编写​​跨语言​​:支持java/py

json基础概念

json(javascript object notation)是一种轻量级数据交换格式,具有以下核心特征:

  • ​简洁性​​:纯文本格式,易于阅读和编写
  • ​跨语言​​:支持java/python/javascript等所有主流语言
  • ​高效性​​:比xml减少60%的数据体积
  • ​结构化​​:天然支持对象和数组的嵌套表达

​基本语法规范​

{
  "name": "张三",        // 字符串类型
  "age": 28,            // 数字类型
  "isstudent": false,   // 布尔类型
  "courses": [          // 数组类型
    "math",
    "physics"
  ],
  "details": {          // 对象类型
    "address": "北京",
    "email": "zhangsan@example.com"
  }
}

java 中处理 json 方案

主流实现方式分为三类:

  • ​原生解析​​:使用jdk内置的org.json包(需 jdk 9+
  • ​第三方库​​:推荐使用 google gsonjackson
  • ​轻量级工具​​:json-simple(适合简单场景)

json-simple 库实战

​步骤1:添加依赖​

<!-- maven配置 -->
<dependency>
    <groupid>com.googlecode.json-simple</groupid>
    <artifactid>json-simple</artifactid>
    <version>1.1.1</version>
</dependency>

​步骤2:创建 json 对象​

import org.json.simple.jsonobject;

public class jsoncreator {
    public static void main(string[] args) {
        jsonobject person = new jsonobject();
        person.put("name", "李四");
        person.put("age", 30);
        person.put("married", false);
        
        system.out.println(person.tojsonstring());
        // 输出:{"name":"李四","age":30,"married":false}
    }
}

​步骤3:解析json文件​

import org.json.simple.parser.jsonparser;
import org.json.simple.jsonobject;
import java.io.filereader;

public class jsonreader {
    public static void main(string[] args) {
        jsonparser parser = new jsonparser();
        
        try (filereader reader = new filereader("data.json")) {
            jsonobject jsonobject = (jsonobject) parser.parse(reader);
            
            string name = (string) jsonobject.get("name");
            long age = (long) jsonobject.get("age");
            system.out.println("姓名:" + name);
            system.out.println("年龄:" + age);
            
            // 解析嵌套数组
            jsonarray courses = (jsonarray) jsonobject.get("courses");
            system.out.println("课程列表:");
            for (object course : courses) {
                system.out.println("\t- " + course);
            }
        } catch (exception e) {
            e.printstacktrace();
        }
    }
}

高级解析技巧

​1. 处理复杂嵌套结构​

// 假设json结构:
// {
//   "students": [
//     {"name": "王五", "score": 85},
//     {"name": "赵六", "score": 92}
//   ]
// }

jsonarray students = (jsonarray) jsonobject.get("students");
for (object obj : students) {
    jsonobject student = (jsonobject) obj;
    system.out.println("学生:" + student.get("name") + ",成绩:" + student.get("score"));
}

​2. 类型安全访问​

long safeage = jsonobject.containskey("age") 
    ? (long) jsonobject.get("age") 
    : 0l; // 默认值处理

​3. 文件写入操作​

try (filewriter file = new filewriter("output.json")) {
    file.write(jsonobject.tojsonstring());
    system.out.println("数据已保存到output.json");
} catch (ioexception e) {
    e.printstacktrace();
}

技术选型对比

方案优点缺点
json-simple依赖少/简单场景适用功能有限/性能一般
gsongoogle官方支持/类型安全学习曲线较陡
jackson工业级性能/生态完善配置复杂度较高

最佳实践建议

  • ​性能敏感场景​​:优先使用jackson(基准测试显示其解析速度比gson快30%)
  • ​微服务架构​​:结合spring boot的@requestbody自动绑定功能
  • ​数据校验​​:使用hibernate validator实现bean validation
  • ​异常处理​​:统一捕获parseexception并返回标准错误码
// spring boot控制器示例
@restcontroller
public class usercontroller {
    @postmapping("/users")
    public responseentity<?> createuser(@valid @requestbody userdto user) {
        // 自动将json转换为userdto对象
        userservice.save(user);
        return responseentity.ok("用户创建成功");
    }
}

通过掌握json处理技术,可以有效提升系统的数据交互能力,为构建 restful api 和微服务架构奠定坚实基础。建议根据项目需求选择合适的解析方案,并注重异常处理和性能优化。

以上就是在java中读取和解析json文件的示例代码的详细内容,更多关于java读取和解析json文件的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com