インターフェース 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
- 関連事項:
方法の概要
修飾子と型メソッド説明deserialize(JsonParser parser, DeserializationContext ctx, TypeSE rtType) JSON ストリームをオブジェクトに逆直列化します。
メソッドの詳細
deserialize
JSON ストリームをオブジェクトに逆直列化します。- パラメーター:
parser- Json パーサー。ctx- デシリアライズコンテキスト。rtType- 返されたオブジェクトの型。- 戻り値:
- 逆直列化されたインスタンス。