Java 对象转 JSON 在线
介绍
在现代的软件开发中,我们经常需要将 Java 对象转换为 JSON 格式。JSON(JavaScript Object Notation)是一种常用的数据格式,它具有简洁、易读和易于解析的特点,因此被广泛用于数据交换和存储。
为了实现 Java 对象转 JSON 的功能,我们可以使用一些开源库,如 Jackson、Gson 等。这些库提供了丰富的 API,可以方便地将 Java 对象转换为 JSON,并支持自定义配置和灵活的操作。
本文将介绍如何使用 Jackson 库实现 Java 对象转 JSON 的功能,并提供一些示例代码帮助读者更好地理解和使用这些功能。
使用 Jackson 库
Jackson 是一个功能强大且广泛使用的 Java 库,用于处理 JSON 数据。它提供了一些核心的类和方法,使我们能够轻松地进行 Java 对象和 JSON 之间的转换。
添加 Jackson 依赖
要使用 Jackson 库,我们首先需要在项目中添加相应的依赖。以下是 Maven 项目的示例配置:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
Java 对象转 JSON
下面是一个简单的示例,演示了如何将 Java 对象转换为 JSON 字符串:
import com.fasterxml.jackson.databind.ObjectMapper;
public class ObjectToJsonExample {
public static void main(String[] args) throws Exception {
// 创建一个 Java 对象
Person person = new Person("John", 30);
// 创建 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();
// 将 Java 对象转换为 JSON 字符串
String jsonString = mapper.writeValueAsString(person);
// 打印 JSON 字符串
System.out.println(jsonString);
}
static class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter 和 setter 方法省略
}
}
上述代码中,我们首先创建了一个名为 Person
的 Java 对象,并使用 ObjectMapper
类将其转换为 JSON 字符串。然后,我们打印输出了这个 JSON 字符串。
注意,为了使 Jackson 能够正确地将 Java 对象转换为 JSON,我们需要为 Person
类提供默认的构造方法和相应的 getter/setter 方法。
JSON 转 Java 对象
除了将 Java 对象转换为 JSON,Jackson 还提供了将 JSON 转换为 Java 对象的功能。下面是一个示例:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonToObjectExample {
public static void main(String[] args) throws Exception {
// 定义一个 JSON 字符串
String jsonString = "{\"name\":\"John\", \"age\":30}";
// 创建 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串转换为 Java 对象
Person person = mapper.readValue(jsonString, Person.class);
// 打印 Java 对象的属性
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
static class Person {
private String name;
private int age;
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;
}
}
}
上述代码中,我们定义了一个 JSON 字符串,并使用 ObjectMapper
类将其转换为 Person
对象。然后,我们打印了 Person
对象的属性。
自定义配置
Jackson 提供了许多配置选项,以便在对象和 JSON 之间进行灵活的转换。以下是一些常用的配置选项示例:
- 设置日期格式:
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
- 忽略为空的属性:
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- 格式化输出:
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT