パッケージ jakarta.json.bind
インターフェース Jsonb
- すべてのスーパーインターフェース:
AutoCloseableSE
public interface Jsonb extends AutoCloseableSE
Jsonb
は、JSON バインディングフレームワーク操作の抽象化を提供します。fromJson
: JSON 入力を読み取り、Java オブジェクトコンテンツツリーに逆直列化するtoJson
: Java オブジェクトのコンテンツツリーを JSON 入力に直列化する
このクラスのインスタンスは、
JsonbBuilder
ビルダーメソッドを使用して作成されます。
JSON の逆直列化(読み取り)// Example 1 - Creating Jsonb using default JsonbBuilder instance provided by default JsonbProvider Jsonb jsonb = JsonbBuilder.create(); // Example 2 - Creating Jsonb instance for a specific provider specified by a class name Jsonb jsonb = JsonbBuilder.newBuilder("foo.bar.ProviderImpl).build(); // Example 3 - Creating Jsonb instance from a custom provider implementation Jsonb jsonb = new CustomJsonbBuilder().build();
JSON ドキュメント全体または JSON ドキュメントのサブツリーのいずれかを表す JSON データを逆直列化できます。
ファイルからのオブジェクトコンテンツツリーの読み取り(逆直列化):
Jsonb jsonb = JsonbBuilder.create(); Book book = jsonb.fromJson(new FileReader("jsonfile.json"), Book.class);
デシリアライズプロセスが JSON コンテンツをオブジェクトコンテンツツリーにデシリアライズできない場合、JsonbException をスローして処理を終了する致命的なエラーが報告されます。JSON へのシリアライズ(書き込み)
直列化は、Java オブジェクトコンテンツツリーの表現を JSON データに書き込みます。
オブジェクトコンテンツツリーをファイルに書き込む(直列化する):
jsonb.toJson(object, new FileWriter("foo.json"));
ライターへの書き込み(シリアライズ):jsonb.toJson(object, new PrintWriter(System.out));
エンコード
デシリアライズ操作(
fromJson
)では、JSON データのエンコードが自動的に検出されます。JsonbConfig
API を使用して、逆直列化操作で使用される予想される入力エンコーディングを構成します。クライアントアプリケーションは、RFC 7159 で定義され、Java プラットフォームでサポートされている有効な文字エンコードを提供することが期待されています。直列化操作(toJson
)では、JSON データの書き込みにデフォルトで UTF-8 エンコーディングが使用されます。JsonbConfig
API を使用して、直列化操作で使用される出力エンコーディングを構成します。クライアントアプリケーションは、RFC 7159 で定義され、Java プラットフォームでサポートされている有効な文字エンコードを提供することが期待されています。最適に使用するには、
JsonbBuilder
およびJsonb
インスタンスを再利用する必要があります。通常の使用例では、アプリケーションに必要なJsonb
インスタンスは 1 つだけです。このクラスのすべてのメソッドは、複数の並行スレッドで安全に使用できます。
Closable.close()
メソッドを呼び出すと、Jsonb との対話中に作成されたすべての CDI 管理対象コンポーネント(CDI 依存関係を持つアダプターなど)がクリーンアップされます。close()
の呼び出しは、すべてのスレッドが Jsonb との対話を完了した後に行う必要があります。Jsonb で動作する残りのスレッドがあり、close()
が呼び出された場合、動作は未定義です。- 導入:
- JSON バインディング 1.0
- 関連事項:
Jsonb
,JsonbBuilder
,ServiceLoader
SE
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 <T> T
fromJson(InputStreamSE stream, ClassSE<T> type)
指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。<T> T
fromJson(InputStreamSE stream, TypeSE runtimeType)
指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。<T> T
fromJson(ReaderSE reader, ClassSE<T> type)
指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。<T> T
fromJson(ReaderSE reader, TypeSE runtimeType)
指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。<T> T
fromJson(StringSE str, ClassSE<T> type)
指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。<T> T
fromJson(StringSE str, TypeSE runtimeType)
指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。StringSE
toJson(ObjectSE object)
ルートオブジェクトobject
を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。void
toJson(ObjectSE object, OutputStreamSE stream)
オブジェクトコンテンツツリーを出力ストリームに書き込みます。void
toJson(ObjectSE object, WriterSE writer)
オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。StringSE
toJson(ObjectSE object, TypeSE runtimeType)
ルートオブジェクトobject
を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。void
toJson(ObjectSE object, TypeSE runtimeType, OutputStreamSE stream)
オブジェクトコンテンツツリーを出力ストリームに書き込みます。void
toJson(ObjectSE object, TypeSE runtimeType, WriterSE writer)
オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。インターフェース java.lang.AutoCloseableSE から継承されたメソッド
close
メソッドの詳細
fromJson
<T> T fromJson(StringSE str, ClassSE<T> type) throws JsonbException
指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
str
- JSON データを逆直列化する文字列。type
- コンテンツツリーのルートオブジェクトの型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
fromJson
<T> T fromJson(StringSE str, TypeSE runtimeType) throws JsonbException
指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
str
- JSON データを逆直列化する文字列。runtimeType
- コンテンツツリーのルートオブジェクトの実行時型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
fromJson
<T> T fromJson(ReaderSE reader, ClassSE<T> type) throws JsonbException
指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
reader
- 文字ストリームは JSON データとして読み込まれます。type
- コンテンツツリーのルートオブジェクトの型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
fromJson
<T> T fromJson(ReaderSE reader, TypeSE runtimeType) throws JsonbException
指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
reader
- 文字ストリームは JSON データとして読み込まれます。runtimeType
- コンテンツツリーのルートオブジェクトの実行時型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
fromJson
<T> T fromJson(InputStreamSE stream, ClassSE<T> type) throws JsonbException
指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
stream
- ストリームは JSON データとして読み取られます。正常に完了すると、このメソッドによってストリームが閉じられます。type
- コンテンツツリーのルートオブジェクトの型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
fromJson
<T> T fromJson(InputStreamSE stream, TypeSE runtimeType) throws JsonbException
指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。- 型パラメーター:
T
- コンテンツツリーのルートオブジェクトの型。- パラメーター:
stream
- ストリームは JSON データとして読み取られます。正常に完了すると、このメソッドによってストリームが閉じられます。runtimeType
- コンテンツツリーのルートオブジェクトの実行時型。- 戻り値:
- java コンテンツツリーの新しく作成されたルートオブジェクト
- 例外:
JsonbException
- 逆直列化中に予期しないエラーが発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。
toJson
StringSE toJson(ObjectSE object) throws JsonbException
ルートオブジェクトobject
を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリーのルートオブジェクト。null であってはなりません。- 戻り値:
- 直列化された JSON データを含む文字列インスタンス。
- 例外:
JsonbException
- I/O エラーなど、直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0
toJson
StringSE toJson(ObjectSE object, TypeSE runtimeType) throws JsonbException
ルートオブジェクトobject
を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリーのルートオブジェクト。null であってはなりません。runtimeType
- コンテンツツリーのルートオブジェクトのランタイム型。提供される型は、インスタンスの型に関連している必要があります。- 戻り値:
- 直列化された JSON データを含む文字列インスタンス。
- 例外:
JsonbException
- I/O エラーなど、直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0
toJson
void toJson(ObjectSE object, WriterSE writer) throws JsonbException
オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリー。writer
- JSON は、文字ストリームとして指定されたWriter
SE に送信されます。- 例外:
JsonbException
- 直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0
toJson
void toJson(ObjectSE object, TypeSE runtimeType, WriterSE writer) throws JsonbException
オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリー。runtimeType
- コンテンツツリーのルートオブジェクトのランタイム型。提供される型は、インスタンスの型に関連している必要があります。writer
- JSON は、文字ストリームとして指定されたWriter
SE に送信されます。- 例外:
JsonbException
- 直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0
toJson
void toJson(ObjectSE object, OutputStreamSE stream) throws JsonbException
オブジェクトコンテンツツリーを出力ストリームに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリー。stream
- JSON はバイトストリームとして指定されたOutputStream
SE に送信されます。正常に完了すると、このメソッドによってストリームが閉じられます。- 例外:
JsonbException
- 直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0
toJson
void toJson(ObjectSE object, TypeSE runtimeType, OutputStreamSE stream) throws JsonbException
オブジェクトコンテンツツリーを出力ストリームに書き込みます。- パラメーター:
object
- 直列化されるオブジェクトコンテンツツリー。runtimeType
- コンテンツツリーのルートオブジェクトのランタイム型。提供される型は、インスタンスの型に関連している必要があります。stream
- JSON はバイトストリームとして指定されたOutputStream
SE に送信されます。正常に完了すると、このメソッドによってストリームが閉じられます。- 例外:
JsonbException
- 直列化中に予期しない問題が発生した場合。NullPointerExceptionSE
- パラメーターのいずれかがnull
の場合。- 導入:
- JSON バインディング 1.0