JAVA · 파일/IO
Jackson ObjectMapper
Jackson 라이브러리로 JSON 직렬화/역직렬화를 수행합니다.
파일/IO중급JacksonObjectMapperJSON직렬화
핵심 설명
Jackson 라이브러리로 JSON 직렬화/역직렬화를 수행합니다.
Java code
// Jackson 의존성: com.fasterxml.jackson.core:jackson-databind:2.16+
// import com.fasterxml.jackson.databind.ObjectMapper;
// import com.fasterxml.jackson.databind.SerializationFeature;
// Jackson 사용법 (의사코드 — 실행 시 Jackson 의존성 필요)
class JacksonDemo {
record Product(String name, int price, boolean available) {}
public static void main(String[] args) throws Exception {
// ObjectMapper 생성 (재사용 권장)
// ObjectMapper mapper = new ObjectMapper()
// .enable(SerializationFeature.INDENT_OUTPUT);
// 직렬화: 객체 -> JSON
// Product product = new Product("노트북", 1500000, true);
// String json = mapper.writeValueAsString(product);
// {"name":"노트북","price":1500000,"available":true}
// 역직렬화: JSON -> 객체
// Product restored = mapper.readValue(json, Product.class);
// 리스트 역직렬화
// String jsonArray = "[{...}, {...}]";
// List<Product> list = mapper.readValue(jsonArray,
// new TypeReference<List<Product>>() {});
// 파일에서 읽기
// Product fromFile = mapper.readValue(new File("p.json"), Product.class);
// record는 Jackson 2.12+에서 지원
System.out.println("Jackson은 Java JSON 처리의 표준입니다.");
System.out.println("record, sealed, Optional 등 최신 기능을 지원합니다.");
}
}학습 팁
ObjectMapper는 스레드 안전하므로 싱글턴으로 재사용하세요. 매번 생성하면 성능이 떨어집니다.
주의할 점
제네릭 타입(List<Product>)을 역직렬화할 때 TypeReference를 사용하지 않으면 LinkedHashMap으로 역직렬화됩니다.
자주 묻는 질문
Jackson ObjectMapper란 무엇인가요?
Jackson 라이브러리로 JSON 직렬화/역직렬화를 수행합니다.
Jackson ObjectMapper 학습 시 주의할 점은 무엇인가요?
제네릭 타입( List<Product> )을 역직렬화할 때 TypeReference 를 사용하지 않으면 LinkedHashMap 으로 역직렬화됩니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.