如何使用Jackson库将Java对象转换为JSON?
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}