Java中的JSON处理:Jackson与Gson库用于数据处理

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

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

开始课程

JSON 处理在 Java 中:Jackson 和 Gson 库



JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,广泛应用于 Web 开发、API 和微服务中。在 Java 中,有多个强大的库可用于处理 JSON,其中最流行的是 Jackson 和 Gson。在本文中,我们将详细介绍这两个库、它们的功能、使用示例以及特点。



1. Jackson 库



Jackson 是由 FasterXML 开发的高性能 Java JSON 处理库。它提供了一套完整的工具,用于序列化、反序列化、解析和数据转换。Jackson 是 Spring 生态系统中的事实标准。



Jackson 的主要功能:

  • ObjectMapper — 用于将 Java 对象转换为 JSON 以及反向转换的主要类。
  • 注解 — 通过注解(@JsonProperty、@JsonIgnore、@JsonFormat)灵活配置序列化。
  • 支持 Stream API — 读取和写入 JSON 流。
  • 可自定义序列化 — 能够创建自定义的序列化器和反序列化器。


Jackson 使用示例:

import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;

public class JacksonExample { public static void main(String[] args) throws Exception { // 创建映射对象 ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT);

// 示例类 Person person = new Person("Иван", 30, "ivan@example.com");

// 序列化为 JSON String jsonString = mapper.writeValueAsString(person); System.out.println("JSON: " + jsonString);

// 从 JSON 反序列化 String jsonInput = "{\\"name\\":\\"Мария\\",\\"age\\":25,\\"email\\":\\"maria@example.com\\"}"; Person deserializedPerson = mapper.readValue(jsonInput, Person.class); System.out.println("对象: " + deserializedPerson.getName()); }}

class Person { private String name; private int age; private String email;

public Person() {} // 必需的无参构造器

public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }

// getters 和 setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}


Jackson 依赖配置 (Maven):

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


2. Gson 库



Gson 是 Google 开发的库,用于将 Java 对象序列化和反序列化为 JSON 格式。它以其简单易用和轻量级而著称。Gson 通常被选用于小型项目和 Android 移动开发。



Gson 的主要功能:

  • GsonBuilder — 配置序列化行为。
  • 注解 — 支持 @SerializedName 用于重命名字段。
  • 支持 JSON 数组 — 处理集合。
  • Null 处理 — 包含/排除 null 值的选项。


Gson 使用示例:

import com.google.gson.Gson;import com.google.gson.GsonB                    

推荐