Jackson을 사용하여 Java 8 LocalDate 형식화
문제:
Java 애플리케이션에서 날짜 변환 @JsonFormat 주석을 사용하면 특정 날짜 패턴을 사용하여 JSON 형식으로 개체를 간단하게 만들 수 있습니다. 그러나 Java 8에 도입된 java.time.LocalDate를 처리할 때 동일한 접근 방식이 예상대로 작동하지 않을 수 있습니다.
제안 솔루션:
JSON 직렬화를 위한 LocalDate 객체의 경우 다음 접근 방식을 사용할 수 있습니다.
예시 코드:
ContextResolver:
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @Provider public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> { @Override public ObjectMapper getContext(Class<?> type) { ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); return mapper; } }
리소스 클래스:
import java.time.LocalDate; @Path("person") public class LocalDateResource { @GET public Person getPerson() { return new Person(LocalDate.now()); } }
Person 클래스:
public class Person { @JsonDeserialize(using = LocalDateDeserializer.class) @JsonSerialize(using = LocalDateSerializer.class) private LocalDate birthDate; }
이 접근 방식을 구현하면 LocalDate 개체를 효과적으로 직렬화 및 역직렬화할 수 있어 유연한 JSON 형식이 가능해집니다.
위 내용은 Jackson을 사용하여 JSON에서 Java 8 LocalDate 개체의 형식을 올바르게 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!