Jackson是一個流行的Java庫,用于將Java對象與JSON之間相互轉換。它提供了一個靈活的API和一些強大的功能,例如支持注解,自定義序列化和反序列化,以及幫助處理JSON數據的工具集。本文將介紹如何使用Jackson將Java對象轉換為JSON字符串并將JSON字符串轉換為Java對象。
首先,我們需要導入Jackson庫。可以在Maven或Gradle配置文件中添加以下依賴項:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
接下來,我們創建一個簡單的Java類Person,并使用注解來定義其屬性:
public class Person {
@JsonProperty("name")
private String firstName;
@JsonProperty("age")
private int age;
public Person(String firstName, int age) {
this.firstName = firstName;
this.age = age;
}
// Getters and setters omitted for brevity
}
在上面的代碼中,我們將屬性名“firstName”和“age”映射到JSON對象中的名稱“name”和“age”。
現在我們可以使用ObjectMapper類將Person對象轉換為JSON字符串:
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(new Person("Alice", 25));
System.out.println(json);
輸出結果將類似于:
{"name":"Alice","age":25}
我們可以看到,“firstName”屬性已經被轉換為JSON名稱“name”。
接下來,我們將JSON字符串轉換回Person對象:
String json = "{\"name\":\"Alice\",\"age\":25}";
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.getFirstName()); // Alice
System.out.println(person.getAge()); // 25
我們使用readValue方法將JSON字符串轉換回Person對象。注意,我們需要提供Person類的類型(Person.class)作為第二個參數。
Jackson還提供了其他強大的功能,例如將JSON對象轉換為Java集合或將Java集合轉換為JSON數組。你可以在官方文檔中了解更多關于Jackson庫的信息。