💡 ObjectMapper
Jackson 라이브러리의 클래스
JSON - > Java 객체로 Deserialization
Java 객체 -> JSON으로 Serialization
ObjectMapper는 생성 비용이 비싸기 때문에 Bean & Static으로 처리하는걸 권장
Serialization
// Object Mapper를 이용한 직렬화
try {
Question question = Question.builder()
.questionId(1L)
.title("제목")
.content("내용")
.build();
objectMapper.writeValue(new File("src/question.json"), question);
} catch (IOException e) {
e.printStackTrace();
}
Deserialization
// Object Mapper를 이용한 역직렬화
try {
LoginDto loginDto = objectMapper.readValue(request.getInputStream(), LoginDto.class);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
계층 형태의 복잡한 JSon Deserialization
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
PersonDto personDto = objectMapper.readValue(complicatedJson, PersonDto.class);
System.out.println(personDto.getName());
System.out.println(personDto.getContact().getPhoneNumber());
System.out.println(personDto.getJob().getWorkplace().getName());
} catch (JsonProcessingException e) {
e.printStackTrace();
}