> Java > java지도 시간 > Jackson을 사용하여 JSON에서 Java 8 LocalDate 개체의 형식을 올바르게 지정하는 방법은 무엇입니까?

Jackson을 사용하여 JSON에서 Java 8 LocalDate 개체의 형식을 올바르게 지정하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-30 01:54:08
원래의
359명이 탐색했습니다.

How to Properly Format Java 8 LocalDate Objects in JSON using Jackson?

Jackson을 사용하여 Java 8 LocalDate 형식화

문제:

Java 애플리케이션에서 날짜 변환 @JsonFormat 주석을 사용하면 특정 날짜 패턴을 사용하여 JSON 형식으로 개체를 간단하게 만들 수 있습니다. 그러나 Java 8에 도입된 java.time.LocalDate를 처리할 때 동일한 접근 방식이 예상대로 작동하지 않을 수 있습니다.

제안 솔루션:

JSON 직렬화를 위한 LocalDate 객체의 경우 다음 접근 방식을 사용할 수 있습니다.

  1. Jackson 구성 ObjectMapper:
  2. ObjectMapper에 대한 ContextResolver 구현을 생성합니다.
  3. LocalDate 직렬화를 지원하려면 ObjectMapper에 JavaTimeModule을 등록합니다.
  4. LocalDate로 WRITE_DATES_AS_TIMESTAMPS 기능을 false로 활성화합니다. 없는 날짜를 나타냅니다. timestamps.
  5. JAX-RS 애플리케이션에서 ContextResolver 사용:
  6. @Provider 주석을 사용하여 JAX-RS 서비스 클래스를 정의합니다.
  7. ObjectMapperContextResolver 인터페이스 구현 구성된 것을 제공하기 위해 ObjectMapper.
  8. JSON 변환을 위한 리소스 클래스에 주석 달기:
  9. LocalDate 변환을 처리하려면 적절한 역직렬 변환기 및 직렬 변환기 클래스로 @JsonDeserialize 및 @JsonSerialize 주석을 추가하세요.

예시 코드:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿