如何使用 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}

相关文章