如何使用 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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告