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 の値は、JsonObject、JsonArray、JsonString、JsonNumber、JsonValue.TRUE、JsonValue.FALSE、JsonValue.NULL の型になります。JsonArray は、配列内の値にアクセスするためのさまざまなアクセサーメソッドを提供します。
次の例は、前の例で作成した配列から自宅の電話番号 "212 555-1234" を取得する方法を示しています。
JsonObject home = array.getJsonObject(0);
String number = home.getString("number");
JsonArray インスタンスは、JSON 配列の値への読み取り専用アクセスを提供するリストオブジェクトです。直接またはそのコレクションビューを使用して、リストを変更しようとすると、UnsupportedOperationException になります。
JsonValue.ValueTypeEMPTY_JSON_ARRAY, EMPTY_JSON_OBJECT, FALSE, NULL, TRUE| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | getBoolean(int index) 指定された位置にあるブール値を返します。 |
boolean | getBoolean(int index, boolean defaultValue) 指定された位置にあるブール値を返します。 |
int | getInt(int index)getJsonNumber(index).intValue() の簡易メソッド。 |
int | getInt(int index, int defaultValue) 指定された位置にある JsonNumber の int 値を返します。 |
JsonArray | getJsonArray(int index) この配列の指定された位置にある配列値を返します。 |
JsonNumber | getJsonNumber(int index) この配列の指定された位置にある数値を返します。 |
JsonObject | getJsonObject(int index) この配列内の指定された位置にあるオブジェクト値を返します。 |
JsonString | getJsonString(int index) この配列内の指定された位置にある文字列値を返します。 |
StringSE | getString(int index)getJsonString(index).getString() の簡易メソッド。 |
StringSE | getString(int index, StringSE defaultValue) この JSON 配列値の指定された位置にある JsonString の String 値を返します。 |
<T extends JsonValue> | getValuesAs(ClassSE<T> clazz) 配列に対して指定された型のリストビューを返します。 |
default <T,K extends JsonValue> | getValuesAs(FunctionSE<K,T> func) 配列のリストビューを返します。 |
boolean | isNull(int index) この配列内の指定された位置の値が JsonValue.NULL の場合、true を返します。 |
getValueasJsonArray, asJsonObject, getValueType, toStringaddSE, addSE, addAllSE, addAllSE, clearSE, containsSE, containsAllSE, equalsSE, getSE, hashCodeSE, indexOfSE, isEmptySE, iteratorSE, lastIndexOfSE, listIteratorSE, listIteratorSE, removeSE, removeSE, removeAllSE, replaceAllSE, retainAllSE, setSE, sizeSE, sortSE, spliteratorSE, subListSE, toArraySE, toArraySEparallelStreamSE, removeIfSE, streamSEforEachSEJsonObject getJsonObject(int index)
(JsonObject)get(index) の簡易メソッドです。index - 返される値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonObject 型に割り当てられない場合 JsonArray getJsonArray(int index)
(JsonArray)get(index) の簡易メソッドです。index - 返される値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonArray 型に割り当てられない場合 JsonNumber getJsonNumber(int index)
(JsonNumber)get(index) の便利なメソッドです。index - 返される値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonNumber 型に割り当てられない場合 JsonString getJsonString(int index)
(JsonString)get(index) の便利なメソッドです。index - 返される値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonString 型に割り当てられない場合 <T extends JsonValue> ListSE<T> getValuesAs(ClassSE<T> clazz)
ClassCastException で失敗する可能性があります。残念ながら、このメソッドが戻った後はいつでも例外が発生する可能性があります。T - 配列のリストの型 clazz - JsonValue 型 default <T,K extends JsonValue> ListSE<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 に誤った型の値が含まれている場合 StringSE getString(int index)
getJsonString(index).getString() の簡易メソッド。index - JsonString 値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonString に割り当て可能でない場合 StringSE getString(int index, StringSE defaultValue)
JsonString の String 値を返します。JsonString が見つかると、その JsonString.getString() が返されます。それ以外の場合は、指定されたデフォルト値が返されます。index - JsonString 値のインデックス defaultValue - 指定された位置の JsonValue が JsonString ではない場合に返す文字列 int getInt(int index)
getJsonNumber(index).intValue() の簡易メソッド。index - JsonNumber 値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonNumber に割り当て可能でない場合 int getInt(int index,
int defaultValue)JsonNumber の int 値を返します。その位置の値が JsonNumber の場合、このメソッドは JsonNumber.intValue() を返します。それ以外の場合、このメソッドは指定されたデフォルト値を返します。index - JsonNumber 値のインデックス defaultValue - 指定された位置の JsonValue が JsonNumber ではない場合に返す int 値 boolean getBoolean(int index)
JsonValue.TRUE の場合、このメソッドは true を返します。指定された位置の値が JsonValue.FALSE の場合、このメソッドは false を返します。index - JSON ブール値のインデックス IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 ClassCastExceptionSE - 指定された位置の値が JsonValue.TRUE または JsonValue.FALSE に割り当てられない場合 boolean getBoolean(int index,
boolean defaultValue)JsonValue.TRUE の場合、このメソッドは true を返します。指定された位置の値が JsonValue.FALSE の場合、このメソッドは false を返します。それ以外の場合、このメソッドは指定されたデフォルト値を返します。index - JSON ブール値のインデックス defaultValue - 指定された位置の JsonValue が TRUE でも FALSE でもない場合に返すブール値 boolean isNull(int index)
JsonValue.NULL の場合、true を返します。index - JSON null 値のインデックス JsonValue.NULL の場合は true を返し、それ以外の場合は false を返します IndexOutOfBoundsExceptionSE - インデックスが範囲外の場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.