パッケージ jakarta.json

インターフェース JsonArray

  • すべてのスーパーインターフェース:
    CollectionSE<JsonValue>IterableSE<JsonValue>JsonStructureJsonValueListSE<JsonValue>

    public interface JsonArray
    extends JsonStructure, ListSE<JsonValue>
    JsonArray は、不変の JSON 配列(順序付けされた 0 個以上の値のシーケンス)を表します。また、配列内の値の変更不可能なリストビューも提供します。

    JsonArray オブジェクトは、入力ソースから JSON データを読み取ることによって作成するか、配列ビルダーオブジェクトを使用してゼロから構築できます。

    次の例は、メソッド JsonReader.readArray() を使用して入力ソースから JsonArray オブジェクトを作成する方法を示しています。

    
     JsonReader jsonReader = Json.createReader(...);
     JsonArray array = jsonReader.readArray();
     jsonReader.close();
     

    次の例は、クラス JsonArrayBuilder を使用して空の JSON 配列を作成する方法を示しています。

    
     JsonArray array = Json.createArrayBuilder().build();
     

    以下のコード例は、次の JSON 配列を作成する方法を示しています。

    
     [
         { "type": "home", "number": "212 555-1234" },
         { "type": "fax", "number": "646 555-4567" }
     ]
     
    
     JsonArray value = Json.createArrayBuilder()
         .add(Json.createObjectBuilder()
             .add("type", "home")
             .add("number", "212 555-1234"))
         .add(Json.createObjectBuilder()
             .add("type", "fax")
             .add("number", "646 555-4567"))
         .build();
     

    次の例は、JsonArray オブジェクトを JSON データとして書き込む方法を示しています。

    
     JsonArray arr = ...;
     JsonWriter writer = Json.createWriter(...)
     writer.writeArray(arr);
     writer.close();
     

    JsonArray の値は、JsonObjectJsonArrayJsonStringJsonNumberJsonValue.TRUEJsonValue.FALSEJsonValue.NULL の型になります。JsonArray は、配列内の値にアクセスするためのさまざまなアクセサーメソッドを提供します。

    次の例は、前の例で作成した配列から自宅の電話番号 "212 555-1234" を取得する方法を示しています。

    
     JsonObject home = array.getJsonObject(0);
     String number = home.getString("number");
     

    JsonArray インスタンスは、JSON 配列の値への読み取り専用アクセスを提供するリストオブジェクトです。直接またはそのコレクションビューを使用して、リストを変更しようとすると、UnsupportedOperationException になります。

    • メソッドの詳細

      • getJsonObject

        JsonObject getJsonObject​(int index)
        この配列の指定された位置にあるオブジェクト値を返します。これは (JsonObject)get(index) の簡易メソッドです。
        パラメーター:
        index - 返される値のインデックス
        戻り値:
        この配列内の指定された位置の値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonObject 型に割り当てられない場合
      • getJsonArray

        JsonArray getJsonArray​(int index)
        この配列の指定された位置にある配列値を返します。これは (JsonArray)get(index) の簡易メソッドです。
        パラメーター:
        index - 返される値のインデックス
        戻り値:
        この配列内の指定された位置の値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonArray 型に割り当てられない場合
      • getJsonNumber

        JsonNumber getJsonNumber​(int index)
        この配列の指定された位置にある数値を返します。これは (JsonNumber)get(index) の便利なメソッドです。
        パラメーター:
        index - 返される値のインデックス
        戻り値:
        この配列内の指定された位置の値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonNumber 型に割り当てられない場合
      • getJsonString

        JsonString getJsonString​(int index)
        この配列内の指定された位置にある文字列値を返します。これは (JsonString)get(index) の便利なメソッドです。
        パラメーター:
        index - 返される値のインデックス
        戻り値:
        この配列内の指定された位置の値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonString 型に割り当てられない場合
      • getValuesAs

        <T extends JsonValueListSE<T> getValuesAs​(ClassSE<T> clazz)
        配列に対して指定された型のリストビューを返します。このメソッドは、配列に間違った型の値があるかどうかを検証しません。この型安全ビューを動的に提供すると、この配列に誤った型の値がある場合、プログラムが ClassCastException で失敗する可能性があります。残念ながら、このメソッドが戻った後はいつでも例外が発生する可能性があります。
        型パラメーター:
        T - 配列のリストの型
        パラメーター:
        clazz - JsonValue 型
        戻り値:
        指定された型のリストビュー
      • getValuesAs

        default <T,​K extends JsonValueListSE<T> getValuesAs​(FunctionSE<K,​T> func)
        配列のリストビューを返します。リスト内の要素の値と型は、func 引数で指定されます。

        このメソッドを使用して、次のようなラップされていない型のリストを取得できます。

        
             List<String> strings = ary1.getValuesAs(JsonString::getString);
             List<Integer> ints = ary2.getValuesAs(JsonNumber::intValue);
          
        または、以下のような単純な射影のリスト
         
             List<Integer> stringsizes = ary1.getValueAs((JsonString v)->v.getString().length();
          
        型パラメーター:
        K - この JsonArray の要素型(JsonValue のサブ型でなければならない)。
        T - 返されるリストの要素型
        パラメーター:
        func - この JsonArray の要素をターゲット要素にマップする関数。
        戻り値:
        指定された値と型のリスト。
        例外:
        ClassCastExceptionSE - JsonArray に誤った型の値が含まれている場合
        導入:
        1.1
      • getString

        StringSE getString​(int index)
        getJsonString(index).getString() の簡易メソッド。
        パラメーター:
        index - JsonString 値のインデックス
        戻り値:
        指定された位置の文字列値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonString に割り当て可能でない場合
      • getString

        StringSE getString​(int index,
                         StringSE defaultValue)
        この JSON 配列値の指定された位置にある JsonString の String 値を返します。JsonString が見つかると、その JsonString.getString() が返されます。それ以外の場合は、指定されたデフォルト値が返されます。
        パラメーター:
        index - JsonString 値のインデックス
        defaultValue - 指定された位置の JsonValue が JsonString ではない場合に返す文字列
        戻り値:
        この配列の指定された位置にある文字列値、または指定されたデフォルト値
      • getInt

        int getInt​(int index)
        getJsonNumber(index).intValue() の簡易メソッド。
        パラメーター:
        index - JsonNumber 値のインデックス
        戻り値:
        指定された位置の int 値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonNumber に割り当て可能でない場合
      • getInt

        int getInt​(int index,
                   int defaultValue)
        指定された位置にある JsonNumber の int 値を返します。その位置の値が JsonNumber の場合、このメソッドは JsonNumber.intValue() を返します。それ以外の場合、このメソッドは指定されたデフォルト値を返します。
        パラメーター:
        index - JsonNumber 値のインデックス
        defaultValue - 指定された位置の JsonValue が JsonNumber ではない場合に返す int 値
        戻り値:
        この配列の指定された位置にある int 値、または指定されたデフォルト値
      • getBoolean

        boolean getBoolean​(int index)
        指定された位置にあるブール値を返します。指定された位置の値が JsonValue.TRUE の場合、このメソッドは true を返します。指定された位置の値が JsonValue.FALSE の場合、このメソッドは false を返します。
        パラメーター:
        index - JSON ブール値のインデックス
        戻り値:
        指定された位置のブール値
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合
        ClassCastExceptionSE - 指定された位置の値が JsonValue.TRUE または JsonValue.FALSE でない場合
      • getBoolean

        boolean getBoolean​(int index,
                           boolean defaultValue)
        指定された位置にあるブール値を返します。指定された位置の値が JsonValue.TRUE の場合、このメソッドは true を返します。指定された位置の値が JsonValue.FALSE の場合、このメソッドは false を返します。それ以外の場合、このメソッドは指定されたデフォルト値を返します。
        パラメーター:
        index - JSON ブール値のインデックス
        defaultValue - 指定された位置の JsonValue が TRUE でも FALSE でもない場合に返すブール値
        戻り値:
        指定された位置のブール値、または指定されたデフォルト値
      • isNull

        boolean isNull​(int index)
        この配列内の指定された位置の値が JsonValue.NULL の場合、true を返します。
        パラメーター:
        index - JSON null 値のインデックス
        戻り値:
        指定された位置の値が JsonValue.NULL の場合は true を返し、それ以外の場合は false を返します
        例外:
        IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合