JAX-RS 2.1에서는 JSON 오브젝트와 Java 오브젝트 간 직렬화 및 직렬화 해제에 사용되는 내부 라이브러리가 Jackson에서 Yasson으로 변경되었습니다. Yasson은 JSON-B의 참조 구현입니다. Jackson과 Yasson은 서로 다른 방식으로 시간 관련 오브젝트를 직렬화합니다. 예를 들어, 다음과 같습니다.
| Jackson | Yasson | |
|---|---|---|
| java.util.Date | 726213720000 | 1993-02-05T06:02:00Z[UTC] |
| java.util.Calendar | 726213720000 | 1993-02-05T00:00:00-06:00[America/Chicago] |
JSON 유형 데이터를 생성하거나 이용하는 JAX-RS 자원 메소드가 영향을 받을 수 있습니다. 이 규칙은 JAX-RS 자원 메소드에서 생성하거나 이용하는 오브젝트에 포함된 java.util.Date 또는 java.util.Calendar 필드에 플래그를 지정합니다.
java.util.Date 및 java.util.Calendar 필드가 포함된 Java 오브젝트를 생성하고 이용하는 JAX-RS 자원 메소드의 예는 다음과 같습니다.
이 규칙은 java.util.Date 및 java.util.Calendar 필드에 플래그를 지정합니다 DataObject 객체에 플래그를 지정합니다.
이 규칙의 경우 이 필드에 @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) 어노테이션을 추가하는 자동 수정이 제공됩니다 를 이 필드에 추가하여 출력을 epoch milliseconds.After 로 변환하는 자동화된 수정이 적용되면 DataObject 클래스 는 다음과 같이 업데이트됩니다:
참고: 액세스하려면 @javax.json.bind.annotation.JsonbDateFormat 어노테이션에 액세스하려면 자동화된 수정에 의해 추가되며, 자동화된 수정은 jsonb 기능을 Liberty server.xml 구성 파일에 추가합니다. 예를 들어, jaxrs-2.1 기능을 사용하는 경우 jsonb-1.0 기능을 추가하십시오.
Jackson과 Yasson 사이의 동작 차이점에 대한 자세한 정보는 Jackson과 JSON-B 동작을 비교하는 JSON 바인딩 표준 필요? 문서를 참조하십시오.