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.