Jackson 是一个用于在 Java 对象和 JSON 数据之间进行转换的库。它为我们提供了许多基本的核心用法,以下将介绍三个常见的用法。

1. 对象序列化和反序列化
对于 Java 对象和 JSON 数据之间的相互转换,Jackson 提供了非常强大和灵活的支持。我们可以使用 Jackson 将一个 Java 对象序列化为 JSON 数据,或将 JSON 数据反序列化为 Java 对象。

首先,我们需要导入 Jackson 的核心依赖:

XML

`xml

com.fasterxml.jackson.core jackson-databind 2.12.3

`

接下来,我们可以使用 ObjectMapper 类来实现对象与 JSON 之间的转换:

Java

`java
ObjectMapper objectMapper = new ObjectMapper();

// 将 Java 对象转换为 JSON 字符串
String json = objectMapper.writeValueAsString(object);

// 将 JSON 字符串转换为 Java 对象
Object object = objectMapper.readValue(json, Object.class);
2.JSONJackson使@JsonIgnore@JsonProperty@JsonInclude`。

JsonIgnore 注解可以标注在字段或 getter/setter 方法上,用于指定该字段在序列化和反序列化时应该被忽略。

JsonProperty 注解可以标注在字段上,用于指定该字段在 JSON 数据中的名称。

JsonInclude 注解可以指定在序列化时是否包含空值或默认值的字段。

以下是示例代码:

Java

`java
public class User {
@JsonProperty("id")
private int userId;

@JsonIgnore
private String password;

@JsonInclude(JsonInclude.Include.NON_NULL)
private String nickname;

// getters and setters
}

User user = new User();
user.setUserId(123);
user.setPassword("123456");
user.setNickname(null);

ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(user);
`

3. JSON 格式化
在默认情况下,Jackson 生成的 JSON 字符串是紧凑的,不易阅读。如果我们希望对 JSON 字符串进行格式化,使其更易读,可以通过设置 ObjectWriter 的一些属性来实现。

以下是一个示例代码:

Java

`java
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);

String json = objectMapper.writeValueAsString(object);
enable(SerializationFeature.INDENT_OUTPUT)` 方法启用了缩进输出,从而生成了格式化的 JSON 字符串。

综上所述,Jackson 提供了基础核心用法中的对象序列化和反序列化、JSON 字段过滤和 JSON 格式化这三个常见的用法,帮助我们在 Java 对象和 JSON 数据之间进行灵活的转换和处理。无论是在后端开发中还是与前端进行数据交互时,使用 Jackson 可以更加方便地操作 JSON 数据。