Java中的JSON处理:面向初学者的解析与序列化

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Java中的JSON处理:面向初学者的解析与序列化

\n\n

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web开发、移动应用和微服务中。对于Java开发者来说,掌握读取(解析)和创建(序列化)JSON是必备技能。本文将使用两个最流行的库:Jackson和Gson,讲解Java中JSON处理的基础知识。内容面向初学者,所有示例都力求简单易懂。

\n\n

什么是JSON解析与序列化?

\n

在进入代码之前,我们先明确概念:

\n
    \n
  • 序列化 — 将Java对象转换为JSON字符串的过程。例如,你创建了一个User对象,并希望以JSON格式将其发送到服务器。
  • \n
  • 解析(反序列化) — 反向过程:将JSON字符串转换回Java对象。例如,你从API收到响应,并希望像操作普通对象一样处理数据。
  • \n
\n\n

项目准备:添加依赖

\n

处理JSON需要外部库。我们介绍两个最流行的选择。

\n\n

方案1:Jackson(推荐初学者使用)

\n

Jackson是一个强大且高性能的库。如果你使用Maven,请在pom.xml中添加:

\n
<dependency>\n    <groupId>com.fasterxml.jackson.core</groupId>\n    <artifactId>jackson-databind</artifactId>\n    <version>2.15.2</version>\n</dependency>
\n\n

方案2:Gson(来自Google)

\n

Gson是一个轻量且直观的库。Maven依赖如下:

\n
<dependency>\n    <groupId>com.google.code.gson</groupId>\n    <artifactId>gson</artifactId>\n    <version>2.10.1</version>\n</dependency>
\n\n

如果你不使用构建系统,也可以从Maven Central手动下载这两个库。

\n\n

示例数据:User类

\n

所有示例都将使用一个简单的User类:

\n
public class User {\n    private String name;\n    private int age;\n    private String email;\n\n    // Jackson和Gson都需要空构造器\n    public User() {}\n\n    public User(String name, int age, String email) {\n        this.name = name;\n        this.age = age;\n        this.email = email;\n    }\n\n    // Getter和Setter(对序列化很重要)\n    public String getName() { return name; }\n    public void setName(String name) { this.name = name; }\n\n    public int getAge() { return age; }\n    public void setAge(int age) { this.age = age; }\n\n    public String getEmail() { return email; }\n    public void setEmail(String email) { this.email = email; }\n}
\n\n

解析JSON(String → Java Object)

\n

下面讲解如何读取JSON字符串并将其转换为User对象。

\n\n

使用Jackson

\n
import com.fasterxml.jackson.databind.ObjectMapper;\n\npublic class JacksonParsingExample {\n    public static void main(String[] args) throws Exception {\n        String jsonString = "{ \\"name\\": \\"伊万\\", \\"age\\": 30, \\"email\\": \\"ivan@example.com\\" }";\n\n        ObjectMapper mapper = new ObjectMapper();\n        User user = mapper.readValue(jsonString, User.class);\n\n        System.out.println("姓名: " + user.getName());\n        System.out.println("年龄: " + user.getAge());\n    }\n}
\n\n

使用Gson

\n
import com.google.gson.Gson;\n\npublic class GsonParsingExample {\n    public static void main(String[] args) {\n        String jsonString = "{ \\"name\\": \\"玛丽亚\\", \\"age\\": 25, \\"email\\": \\"maria@example.com\\" }";\n\n        Gson gson = new Gson();\n        User user = gson.fromJson(json                

博客

书籍推荐