インターフェース 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
    関連事項:
    JsonbConfig, JsonbTypeDeserializer, JsonbSerializer, JsonbAdapter
    • メソッドの詳細

      • deserialize

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