ホームページ >Java >&#&チュートリアル >Spring Data JPAでJSONシリアル化のためにZonedDateTimeを効率的にフォーマットする方法は?
Spring Data JPA: JSON シリアル化のための ZonedDateTime のフォーマット
JSON を使用する場合、ZonedDateTime オブジェクトのシリアル化により冗長なデータ転送が発生する可能性があります。この記事では、過剰なデータ転送を軽減するための ZonedDateTime のフォーマットについて説明します。
問題の背景
ZonedDateTime には、日付と時刻に関する広範な情報が含まれています。デフォルトでは、JSON シリアル化は、すべてのコンポーネントを含むかさばる表現を生成します。効率的なデータ転送のためには、ISO 8601 などの簡潔な方法で ZonedDateTime をフォーマットすることが望ましいです。
Jackson の JavaTimeModule を使用した解決策
ZonedDateTime をフォーマットするには、Jackson の JavaTimeModule を利用できます。 JavaTimeモジュール。依存関係をプロジェクトの pom.xml に追加します:
<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.6.0</version> </dependency>
モジュールを使用するには、ObjectMapper を作成し、JavaTimeModule を登録します:
ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new JavaTimeModule());
エンティティ クラスに @JsonFormat アノテーションを追加します。 ZonedDateTime へフィールド:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") private ZonedDateTime lastModifiedDate;
サンプル実装
以下はサンプル エンティティとその JSON 表現です:
public class Entity { private ZonedDateTime time = ZonedDateTime.now(); @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") public ZonedDateTime getTime() { return time; } }
JSON 出力:
{"time":"2015-07-25T23:09:01.795+0700"}
ジャクソンへのメモ2.4.x ユーザー
Jackson 2.4.x を使用している場合は、objectMapper.registerModule(new JSR310Module()); を使用する必要があります。
上記のソリューションを実装すると、効率的な JSON シリアル化のために ZonedDateTime を効果的にフォーマットでき、不要なデータ転送が削減され、パフォーマンスが向上します。
以上がSpring Data JPAでJSONシリアル化のためにZonedDateTimeを効率的にフォーマットする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。