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 アノテーションを使用して登録されます。
JsonbConfig, JsonbTypeDeserializer, JsonbSerializer, JsonbAdapter| 修飾子と型 | メソッドと説明 |
|---|---|
T | deserialize(JsonParser parser, DeserializationContext ctx, TypeSE rtType)JSON ストリームをオブジェクトに逆直列化します。 |
T deserialize(JsonParser parser, DeserializationContext ctx, TypeSE rtType)
parser - Json パーサー。ctx - デシリアライズコンテキスト。rtType - 返されたオブジェクトの型。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.