パッケージ jakarta.json.bind.adapter

インターフェース JsonbAdapter<Original,Adapted>

型パラメーター:
Original - JSONB が処理方法を知らない型
Adapted - JSONB がそのまま使用する方法を知っている型

アダプターランタイムの「元の」および「適応された」ジェネリクス型は、アダプターが機能するために必須のサブクラス化情報から推測されます。

サンプル 1:

 
      // Generic information is provided by subclassing.
      class BoxToCrateAdapter implements JsonbAdapter<Box<Integer>, Crate<String>> {...};
      jsonbConfig.withAdapters(new BoxToCrateAdapter());

      // Generic information is provided by subclassing with anonymous class
      jsonbConfig.withAdapters(new JsonbAdapter<Box<Integer>, Crate<String>> {...});
 
 

サンプル 2:

 
      BoxToCrateAdapter<T> implements JsonbAdapter<Box<T>, Integer> {...};

      // Bad way: Generic type information is lost due to type erasure
      jsonbConfig.withAdapters(new BoxToCrateAdapter<Integer>());

      // Proper way: Anonymous class holds generic type information
      jsonbConfig.withAdapters(new BoxToCrateAdapter<Integer>(){});
 
 

public interface JsonbAdapter<Original,Adapted>

特定の java 型のカスタムマッピングを定義できます。ターゲット型は、文字列またはマップ可能な java 型です。

直列化では、「元の」型は「適応された」型に変換されます。その後、"Adapted" 型は標準的な方法で JSON に直列化されます。

逆直列化では、逆の方法で機能します。JSON データは「適応」型に逆直列化され、その後「元の」型に変換されます。

アダプターは、JsonbConfig.withAdapters(JsonbAdapter[]) メソッドまたはクラスフィールドの JsonbTypeAdapter アノテーションを使用して登録されます。

導入:
JSON バインディング 1.0
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このメソッドは、逆直列化でのみ使用されます。
    このメソッドは、直列化でのみ使用されます。
  • メソッドの詳細

    • adaptToJson

      Adapted adaptToJson(Original obj) throws ExceptionSE
      このメソッドは、直列化でのみ使用されます。これには、型 Original から型 Adapted への変換ロジックが含まれています。変換後、適応型は標準的な方法で JSON にマッピングされます。
      パラメーター:
      obj - 変換するオブジェクトまたは null
      戻り値:
      JSON または null に直列化される変換されたオブジェクト。
      例外:
      ExceptionSE - 変換中にエラーが発生した場合。
    • adaptFromJson

      Original adaptFromJson(Adapted obj) throws ExceptionSE
      このメソッドは、逆直列化でのみ使用されます。型 Adapted から型 Original への変換ロジックが含まれています。
      パラメーター:
      obj - 変換するオブジェクトまたは null
      戻り値:
      オブジェクトグラフまたは null に設定される pojo を表す変換されたオブジェクト。
      例外:
      ExceptionSE - 変換中にエラーが発生した場合。