Java 직렬화를 위해 Jackson을 사용하는 것은 다음 단계로 나눌 수 있습니다. Jackson 종속성 추가: com.fasterxml.jackson.core:jackson-databind. POJO 객체 생성: JSON 구조에 해당하는 getter 및 setter 메서드를 포함하는 Java 객체를 정의합니다. ObjectMapper 객체 생성: 직렬화 및 역직렬화를 담당하는 ObjectMapper를 인스턴스화합니다. 객체 직렬화: ObjectMapper를 사용하여 객체를 JSON으로 직렬화합니다. 실제 예: JDBC를 사용하여 데이터베이스를 쿼리하고 그 결과를 JSON으로 직렬화합니다. 객체 역직렬화: ObjectMapper를 사용하여 JSON 문자열에서 객체를 역직렬화합니다.
소개
Jackson은 Java 개체의 JSON 직렬화 및 역직렬화에 널리 사용되는 라이브러리입니다. 이 기사에서는 Java 애플리케이션에서 직렬화를 위해 Jackson을 사용하는 방법을 안내합니다.
Jackson 종속성 추가
Maven 또는 Gradle 프로젝트에 다음 종속성을 추가합니다.
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.4</version> </dependency>
POJO 객체 생성
직렬화할 POJO(Plain Old Java Object) 클래스 정의(Getter 및 setter 메서드 포함) JSON 구조에 해당합니다. 예:
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
위 내용은 Java 직렬화에 Jackson을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!