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