如何使用 Jackson 库将 Java 对象转换为 JSON?
javaobject oriented programmingprogrammingjson
JSON 或 JavaScript 对象表示法是一种轻量级的基于文本的开放标准,旨在实现人性化的数据交换。程序员都知道 JSON 使用的约定,包括 C、C++、Java、Python、Perl 等。
有多个 Java 库可用于处理 JSON 对象。 Jackson 是一个简单的基于 Java 的库,用于将 Java 对象序列化为 JSON,反之亦然。
将 Java 对象转换为 JSON
Java 中 Jackson API 的 ObjectMapper 类提供了将 Java 对象转换为 JSON 对象的方法,反之亦然。
此类的 writeValueAsString() 方法接受 JSON 对象作为参数并返回其相应的 JSON 字符串
因此,要使用 Jackson 库将 Java 对象转换为 JSON 字符串 -
将以下 maven 依赖项添加到您的 pom.xml
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.0.pr2</version> </dependency>
创建一个具有私有变量和 setter/getter 方法的 javabean/POJO 对象。
创建另一个类(确保 POJO 类可用于此)。
在其中,创建 POJO 类的对象,使用 setter 方法为其设置所需的值。
实例化 ObjectMapper 类。
通过传递上面创建的 POJO 对象来调用 writeValueAsString() 方法。
检索并打印获得的 JSON。
示例
import com.google.gson.Gson; class Student { private int id; private String name; private int age; private long phone; public int getId() { return id; } public void setId(int id) { this.id = id; } 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 long getPhone() { return phone; } public void setPhone(long phone) { this.phone = phone; } } public class JacksionExample { public static void main(String args[]) throws Exception { Student std = new Student(); std.setId(001); std.setName("Krishna"); std.setAge(30); std.setPhone(9848022338L); //Creating the ObjectMapper object ObjectMapper mapper = new ObjectMapper(); //Converting the Object to JSONString String jsonString = mapper.writeValueAsString(std); System.out.println(jsonString); } }
输出
{"id":1,"name":"Krishna","age":30,"phone":9848022338}