パッケージ jakarta.json

インターフェース JsonObject

すべてのスーパーインターフェース:
JsonStructureJsonValueMapSE<StringSE,JsonValue>

public interface JsonObject extends JsonStructure, MapSE<StringSE,JsonValue>
JsonObject クラスは、不変の JSON オブジェクト値(0 個以上の名前と値のペアの順序付けられていないコレクション)を表します。また、JSON オブジェクトの名前 / 値マッピングへの変更不可能なマップビューも提供します。

JsonObject インスタンスは、JsonReader.readObject() を使用して入力ソースから作成できます。例:


 JsonReader jsonReader = Json.createReader(...);
 JsonObject object = jsonReader.readObject();
 jsonReader.close();
 
JsonObjectBuilder を使用してゼロから構築することもできます。

例 1: 空の JSON オブジェクトは次のように構築できます。


 JsonObject object = Json.createObjectBuilder().build();
 
例 2: 次の JSON

 {
     "firstName": "John", "lastName": "Smith", "age": 25,
     "address" : {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
     "phoneNumber": [
         { "type": "home", "number": "212 555-1234" },
         { "type": "fax", "number": "646 555-4567" }
     ]
 }
 
を使用して構築できます:

 JsonObject value = Json.createObjectBuilder()
     .add("firstName", "John")
     .add("lastName", "Smith")
     .add("age", 25)
     .add("address", Json.createObjectBuilder()
         .add("streetAddress", "21 2nd Street")
         .add("city", "New York")
         .add("state", "NY")
         .add("postalCode", "10021"))
     .add("phoneNumber", 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();
 
JsonObject は、次のように JSON に書き込むことができます。

 JsonWriter writer = ...
 JsonObject obj = ...;
 writer.writeObject(obj);
 
JsonObject の値には、JsonObjectJsonArrayJsonStringJsonNumberJsonValue.TRUEJsonValue.FALSEJsonValue.NULL を指定できます。これらの値には、さまざまなアクセサーメソッドを使用してアクセスできます。

上記の例 2 では、"John" は次のようにして取得できます。


 String firstName = object.getString("firstName");
 
このマップオブジェクトは、JSON オブジェクトデータへの読み取り専用アクセスを提供し、直接またはコレクションビューを介してマップを変更しようとすると、UnsupportedOperationException になります。

マップオブジェクトの反復順序は、名前と値のペアが対応するビルダーに追加される順序、または名前と値のペアが対応するストリームに表示される順序に基づいています。

  • メソッドの詳細

    • getJsonArray

      JsonArray getJsonArray(StringSE name)
      指定された名前がマップされている配列値を返します。これは、(JsonArray)get(name) が値を取得するための便利なメソッドです。
      パラメーター:
      name - 関連する値が返される名前
      戻り値:
      指定された名前がマッピングされている配列値、またはこのオブジェクトに名前のマッピングが含まれていない場合は null 
      例外:
      ClassCastExceptionSE - 指定された名前がマップされる値が JsonArray 型に割り当てられない場合
    • getJsonObject

      JsonObject getJsonObject(StringSE name)
      指定された名前がマッピングされているオブジェクト値を返します。これは、(JsonObject)get(name) が値を取得するための便利なメソッドです。
      パラメーター:
      name - 関連する値が返される名前
      戻り値:
      指定された名前がマッピングされているオブジェクト値、またはこのオブジェクトに名前のマッピングが含まれていない場合は null 
      例外:
      ClassCastExceptionSE - 指定された名前がマップされる値が JsonObject 型に割り当てられない場合
    • getJsonNumber

      JsonNumber getJsonNumber(StringSE name)
      指定された名前がマッピングされている数値を返します。これは、(JsonNumber)get(name) が値を取得するための便利なメソッドです。
      パラメーター:
      name - 関連する値が返される名前
      戻り値:
      指定された名前がマッピングされている数値、またはこのオブジェクトに名前のマッピングが含まれていない場合は null 
      例外:
      ClassCastExceptionSE - 指定された名前がマップされる値が JsonNumber 型に割り当てられない場合
    • getJsonString

      JsonString getJsonString(StringSE name)
      指定された名前がマップされている文字列値を返します。これは、(JsonString)get(name) が値を取得するための便利なメソッドです。
      パラメーター:
      name - 関連する値が返される名前
      戻り値:
      指定された名前がマッピングされている文字列値、またはこのオブジェクトに名前のマッピングが含まれていない場合は null 
      例外:
      ClassCastExceptionSE - 指定された名前がマップされる値が JsonString 型に割り当てられない場合
    • getString

      StringSE getString(StringSE name)
      getJsonString(name).getString() の簡易メソッド
      パラメーター:
      name - 関連する値が文字列として返される
      戻り値:
      指定された名前がマッピングされる文字列値
      例外:
      NullPointerExceptionSE - 指定された名前にマッピングがない場合
      ClassCastExceptionSE - 指定された名前マッピングの値が JsonString に割り当てられない場合
    • getString

      StringSE getString(StringSE name, StringSE defaultValue)
      指定された名前に関連付けられた JsonString マッピングの文字列値を返します。JsonString が見つかると、その JsonString.getString() が返されます。それ以外の場合は、指定されたデフォルト値が返されます。
      パラメーター:
      name - 関連する値が文字列として返される
      defaultValue - 返されるデフォルト値
      戻り値:
      名前に関連付けられたマッピングの文字列値、またはデフォルト値
    • getInt

      int getInt(StringSE name)
      getJsonNumber(name).intValue() の簡易メソッド
      パラメーター:
      name - 関連する値が int として返される
      戻り値:
      指定された名前がマップされる int 値
      例外:
      NullPointerExceptionSE - 指定された名前にマッピングがない場合
      ClassCastExceptionSE - 指定された名前マッピングの値が JsonNumber に割り当てられない場合
    • getInt

      int getInt(StringSE name, int defaultValue)
      指定された名前に関連付けられた JsonNumber マッピングの int 値を返します。JsonNumber が見つかると、その JsonNumber.intValue() が返されます。それ以外の場合は、指定されたデフォルト値が返されます。
      パラメーター:
      name - 関連する値が int として返される
      defaultValue - 返されるデフォルト値
      戻り値:
      名前に関連付けられたマッピングの int 値、またはデフォルト値
    • getBoolean

      boolean getBoolean(StringSE name)
      指定された名前に関連付けられたマッピングのブール値を返します。関連するマッピングが JsonValue.TRUE の場合、true を返します。関連するマッピングが JsonValue.FALSE の場合、false を返します。
      パラメーター:
      name - 関連付けられた値がブール値として返される
      戻り値:
      指定された名前がマッピングされるブール値
      例外:
      NullPointerExceptionSE - 指定された名前にマッピングがない場合
      ClassCastExceptionSE - 指定された名前マッピングの値が JsonValue.TRUE または JsonValue.FALSE に割り当てられない場合
    • getBoolean

      boolean getBoolean(StringSE name, boolean defaultValue)
      指定された名前に関連付けられたマッピングのブール値を返します。関連するマッピングが JsonValue.TRUE の場合、true を返します。関連するマッピングが JsonValue.FALSE の場合、false を返します。それ以外の場合は、指定されたデフォルト値が返されます。
      パラメーター:
      name - 関連する値が int として返される
      defaultValue - 返されるデフォルト値
      戻り値:
      名前に関連付けられたマッピングのブール値、またはデフォルト値
    • isNull

      boolean isNull(StringSE name)
      指定された名前に関連付けられた値が JsonValue.NULL の場合、true を返します。
      パラメーター:
      name - 関連する値がチェックされる名前
      戻り値:
      関連する値が JsonValue.NULL の場合は true を返し、それ以外の場合は false を返します
      例外:
      NullPointerExceptionSE - 指定された名前にマッピングがない場合