ホームページ > Java > &#&チュートリアル > Spring Data JPAでJSONシリアル化のためにZonedDateTimeを効率的にフォーマットする方法は?

Spring Data JPAでJSONシリアル化のためにZonedDateTimeを効率的にフォーマットする方法は?

Susan Sarandon
リリース: 2024-12-20 05:26:09
オリジナル
331 人が閲覧しました

How to Efficiently Format ZonedDateTime for JSON Serialization in Spring Data JPA?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート