インターフェース JsonbDeserializer<T>

型パラメーター:
T - デシリアライザーをバインドする型。

public interface JsonbDeserializer<T>

特定の型のカスタムデシリアライザーを表すインターフェース。JsonParser を使用して JSON ストリームから java オブジェクトを逆直列化するための低レベル API を提供します。ある java 型から別の型へのコンバーターとして機能する JsonbAdapter とは異なり、デシリアライザーは、デシリアライズプロセスをよりきめ細かく制御します。

DeserializationContext は JSONB ランタイムとして機能し、提供された java オブジェクトを逆直列化できます。

カスタムデシリアライザーのサンプル:

     class Box {
         public BoxInner boxInnerObject;
         public String name;
     }

     BoxDeserializer implements JsonbDeserializer<Box> {
         public Box deserialize(JsonParser parser, DeserializationContext ctx, Type rtType) {
             Box = new Box();

             while (parser.hasNext()) {
                 Event event = parser.next();

                 if (event == JsonParser.Event.KEY_NAME && parser.getString().equals("boxInnerObject") {
                     // Deserialize inner object
                     box.boxInnerObject = ctx.deserialize(BoxInner.class, jsonParser);

                 } else if (event == JsonParser.Event.KEY_NAME && parser.getString().equals("name") {
                     // Deserialize name property
                     parser.next(); // move to VALUE
                     box.name = parser.getString();
                 }
             }

             return box;
         }
     }
 

デシリアライザーは、JsonbConfig.withDeserializers(JsonbDeserializer[]) メソッドを使用するか、型に JsonbTypeDeserializer アノテーションを使用して登録されます。

導入:
JSON バインディング 1.0
関連事項:
  • 方法の概要

    修飾子と型
    メソッド
    説明
    JSON ストリームをオブジェクトに逆直列化します。
  • メソッドの詳細

    • deserialize

      T deserialize(JsonParser parser, DeserializationContext ctx, TypeSE rtType)
      JSON ストリームをオブジェクトに逆直列化します。
      パラメーター:
      parser - Json パーサー。
      ctx - デシリアライズコンテキスト。
      rtType - 返されたオブジェクトの型。
      戻り値:
      逆直列化されたインスタンス。