パッケージ jakarta.json.bind

インターフェース Jsonb

すべてのスーパーインターフェース:
AutoCloseableSE

public interface Jsonb extends AutoCloseableSE

Jsonb は、JSON バインディングフレームワーク操作の抽象化を提供します。

  • fromJson: JSON 入力を読み取り、Java オブジェクトコンテンツツリーに逆直列化する
  • toJson: Java オブジェクトのコンテンツツリーを JSON 入力に直列化する

このクラスのインスタンスは、JsonbBuilder ビルダーメソッドを使用して作成されます。


 // 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 ドキュメントのサブツリーのいずれかを表す 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
関連事項:
  • 方法の概要

    修飾子と型
    メソッド
    説明
    <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 データを読み取り、結果のコンテンツツリーを返します。
    ルートオブジェクト object を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。
    void
    オブジェクトコンテンツツリーを出力ストリームに書き込みます。
    void
    toJson(ObjectSE object, WriterSE writer)
    オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。
    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 は、文字ストリームとして指定された WriterSE に送信されます。
      例外:
      JsonbException - 直列化中に予期しない問題が発生した場合。
      NullPointerExceptionSE - パラメーターのいずれかが null の場合。
      導入:
      JSON バインディング 1.0
    • toJson

      void toJson(ObjectSE object, TypeSE runtimeType, WriterSE writer) throws JsonbException
      オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。
      パラメーター:
      object - 直列化されるオブジェクトコンテンツツリー。
      runtimeType - コンテンツツリーのルートオブジェクトのランタイム型。提供される型は、インスタンスの型に関連している必要があります。
      writer - JSON は、文字ストリームとして指定された WriterSE に送信されます。
      例外:
      JsonbException - 直列化中に予期しない問題が発生した場合。
      NullPointerExceptionSE - パラメーターのいずれかが null の場合。
      導入:
      JSON バインディング 1.0
    • toJson

      void toJson(ObjectSE object, OutputStreamSE stream) throws JsonbException
      オブジェクトコンテンツツリーを出力ストリームに書き込みます。
      パラメーター:
      object - 直列化されるオブジェクトコンテンツツリー。
      stream - JSON はバイトストリームとして指定された OutputStreamSE に送信されます。正常に完了すると、このメソッドによってストリームが閉じられます。
      例外:
      JsonbException - 直列化中に予期しない問題が発生した場合。
      NullPointerExceptionSE - パラメーターのいずれかが null の場合。
      導入:
      JSON バインディング 1.0
    • toJson

      void toJson(ObjectSE object, TypeSE runtimeType, OutputStreamSE stream) throws JsonbException
      オブジェクトコンテンツツリーを出力ストリームに書き込みます。
      パラメーター:
      object - 直列化されるオブジェクトコンテンツツリー。
      runtimeType - コンテンツツリーのルートオブジェクトのランタイム型。提供される型は、インスタンスの型に関連している必要があります。
      stream - JSON はバイトストリームとして指定された OutputStreamSE に送信されます。正常に完了すると、このメソッドによってストリームが閉じられます。
      例外:
      JsonbException - 直列化中に予期しない問題が発生した場合。
      NullPointerExceptionSE - パラメーターのいずれかが null の場合。
      導入:
      JSON バインディング 1.0