Jackson 是一个流行的 Java 库,用于处理 JSON 数据。它提供了对 JAXB(Java Architecture for XML Binding)的支持,可以轻松地将 Java 对象编组(序列化)为 JSON,以及将 JSON 解组(反序列化)为 Java 对象
首先,确保在你的项目中添加了 Jackson 的依赖。如果你使用 Maven,可以在 pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Jackson核心库 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
<!-- JAXB支持 -->
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
假设你有一个简单的 Java 类,使用了 JAXB 注解:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private String name;
private int age;
// getters and setters
}
你可以使用 Jackson 将这个类的实例编组为 JSON:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
public class Main {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
Person person = new Person();
person.setName("John Doe");
person.setAge(30);
String json = mapper.writeValueAsString(person);
System.out.println(json); // 输出:{"name":"John Doe","age":30}
}
}
同样地,你可以使用 Jackson 将 JSON 解组为 Java 对象:
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
String json = "{\"name\":\"Jane Doe\",\"age\":25}";
Person person = mapper.readValue(json, Person.class);
System.out.println(person.getName()); // 输出:Jane Doe
System.out.println(person.getAge()); // 输出:25
}
}
注意:在实际应用中,你可能需要处理更复杂的对象图和嵌套关系。Jackson 和 JAXB 都提供了丰富的功能来处理这些情况。此外,确保你的类路径中有 JAXB 相关的类,因为 Jackson 使用 JAXB 注解来驱动序列化和反序列化过程。
领取专属 10元无门槛券
手把手带您无忧上云