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.ValueType
EMPTY_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 を返します。 |
getValue
asJsonArray, asJsonObject, getValueType, toString
addSE, 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, toArraySE
parallelStreamSE, removeIfSE, streamSE
forEachSE
JsonObject 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.