Original
- JSONB が処理方法を知らない型 Adapted
- JSONB がそのまま使用する方法を知っている型 アダプターランタイムの「元の」および「適応された」ジェネリクス型は、アダプターが機能するために必須のサブクラス化情報から推測されます。
サンプル 1:
// Generic information is provided by subclassing.
class BoxToCrateAdapter implements JsonbAdapter<Box<Integer>, Crate<String>> {...};
jsonbConfig.withAdapters(new BoxToCrateAdapter());
// Generic information is provided by subclassing with anonymous class
jsonbConfig.withAdapters(new JsonbAdapter<Box<Integer>, Crate<String>> {...});
サンプル 2:
BoxToCrateAdapter<T> implements JsonbAdapter<Box<T>, Integer> {...};
// Bad way: Generic type information is lost due to type erasure
jsonbConfig.withAdapters(new BoxToCrateAdapter<Integer>());
// Proper way: Anonymous class holds generic type information
jsonbConfig.withAdapters(new BoxToCrateAdapter<Integer>(){});
public interface JsonbAdapter<Original,Adapted>
特定の java 型のカスタムマッピングを定義できます。ターゲット型は、文字列またはマップ可能な java 型です。
直列化では、「元の」型は「適応された」型に変換されます。その後、"Adapted" 型は標準的な方法で JSON に直列化されます。
逆直列化では、逆の方法で機能します。JSON データは「適応」型に逆直列化され、その後「元の」型に変換されます。
アダプターは、JsonbConfig.withAdapters(JsonbAdapter[])
メソッドまたはクラスフィールドの JsonbTypeAdapter
アノテーションを使用して登録されます。
JsonbConfig
, JsonbTypeAdapter
修飾子と型 | メソッドと説明 |
---|---|
Original | adaptFromJson(Adapted obj) このメソッドは、逆直列化でのみ使用されます。 |
Adapted | adaptToJson(Original obj) このメソッドは、直列化でのみ使用されます。 |
Adapted adaptToJson(Original obj) throws ExceptionSE
obj
- 変換するオブジェクト。ExceptionSE
- 変換中にエラーが発生した場合。Original adaptFromJson(Adapted obj) throws ExceptionSE
obj
- 変換するオブジェクト。ExceptionSE
- 変換中にエラーが発生した場合。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.