パッケージ 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
    関連事項:
    Jsonb, JsonbBuilder, ServiceLoaderSE
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド  
      修飾子と型 メソッド 説明
      <T> TfromJson​(InputStreamSE stream, ClassSE<T> type)
      指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。
      <T> TfromJson​(InputStreamSE stream, TypeSE runtimeType)
      指定された InputStream から JSON データを読み取り、結果のコンテンツツリーを返します。
      <T> TfromJson​(ReaderSE reader, ClassSE<T> type)
      指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。
      <T> TfromJson​(ReaderSE reader, TypeSE runtimeType)
      指定されたリーダーから JSON データを読み取り、結果のコンテンツツリーを返します。
      <T> TfromJson​(StringSE str, ClassSE<T> type)
      指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。
      <T> TfromJson​(StringSE str, TypeSE runtimeType)
      指定された文字列から JSON データを読み取り、結果のコンテンツツリーを返します。
      StringSEtoJson​(ObjectSE object)
      ルートオブジェクト object を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。
      voidtoJson​(ObjectSE object, OutputStreamSE stream)
      オブジェクトコンテンツツリーを出力ストリームに書き込みます。
      voidtoJson​(ObjectSE object, WriterSE writer)
      オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。
      StringSEtoJson​(ObjectSE object, TypeSE runtimeType)
      ルートオブジェクト object を含む Java オブジェクトツリーを JSON として String インスタンスに書き込みます。
      voidtoJson​(ObjectSE object, TypeSE runtimeType, OutputStreamSE stream)
      オブジェクトコンテンツツリーを出力ストリームに書き込みます。
      voidtoJson​(ObjectSE object, TypeSE runtimeType, WriterSE writer)
      オブジェクトコンテンツツリーを Writer 文字ストリームに書き込みます。
    • メソッドの詳細

      • 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