如何使用 Jackson 库将 Java 对象转换为 JSON?


JSON 或 JavaScript 对象表示法是一种轻量级的基于文本的开放标准,旨在用于人类可读的数据交换。JSON 使用的约定为程序员所熟知,包括 CC++JavaPythonPerl 等。

有几个 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}

更新于: 2023-09-06

48K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告