使用Jackson進行Java序列化可以分為以下步驟:新增Jackson依賴項:com.fasterxml.jackson.core:jackson-databind。建立POJO物件:定義一個包含與JSON結構對應的getter和setter方法的Java物件。建立ObjectMapper物件:實例化ObjectMapper,負責序列化和反序列化。序列化物件:使用ObjectMapper將物件序列化為JSON。實戰範例:使用JDBC查詢資料庫並將其結果序列化為JSON。反序列化物件:使用ObjectMapper從JSON字串反序列化物件。
#簡介
Jackson是用來Java物件的JSON序列化和反序列化的流行庫。本文將指導您如何使用Jackson在Java應用程式中進行序列化。
新增Jackson相依性
在您的Maven或Gradle專案中新增下列相依性:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.4</version> </dependency>
建立POJO物件
定義要序列化的POJO(普通舊Java物件)類,該類別包含與JSON結構對應的getter和setter方法。例如:
public class User { private String name; private int age; // 省略getter和setter方法 }
建立ObjectMapper物件
Jackson的關鍵元件是ObjectMapper,它負責序列化和反序列化。建立ObjectMapper實例:
ObjectMapper mapper = new ObjectMapper();
序列化物件
使用ObjectMapper將物件序列化為JSON:
User user = new User(); user.setName("John Doe"); user.setAge(30); String json = mapper.writeValueAsString(user); System.out.println(json); // 输出:{"name":"John Doe","age":30}
實戰範例
假設您有儲存使用者資料的資料庫表。您可以編寫以下程式碼來查詢使用者並將其序列化為JSON:
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD)) { Statement stmt = conn.createStatement(); String sql = "SELECT * FROM users"; ResultSet rs = stmt.executeQuery(sql); List<User> users = new ArrayList<>(); while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); users.add(user); } String json = mapper.writeValueAsString(users); System.out.println(json); // 输出:[{},{},...] } catch (SQLException | IOException e) { e.printStackTrace(); }
反序列化物件
使用ObjectMapper從JSON字串反序列化物件:
User user = mapper.readValue(json, User.class); System.out.println(user.getName()); // 输出:John Doe
以上是如何使用Jackson進行Java序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!