Package org.json.simple

# Class JsonObject

java.lang.Object
java.util.AbstractMap<String,Object>
java.util.HashMap<String,Object>
org.json.simple.JsonObject

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Map<String,Object>`, `Jsonable`

public class JsonObject extends HashMap<String,Object> implements Jsonable
JsonObject is a common non-thread safe data format for string to data mappings. The contents of a JsonObject are only validated as JSON values on serialization. Meaning all values added to a JsonObject must be recognized by the Jsoner for it to be a true 'JsonObject', so it is really a JsonableHashMap that will serialize to a JsonObject if all of its contents are valid JSON.

Since:
  2.0.0
See Also:
  - `Jsoner`
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class java.util.AbstractMap

`AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>`

## Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

## Constructor Summary

Constructors
Constructor
Description
`JsonObject()`
Instantiates an empty JsonObject.
`JsonObject(Map<String,?> map)`
Instantiate a new JsonObject by accepting a map's entries, which could lead to de/serialization issues of the resulting JsonObject since the entry values aren't validated as JSON values.

## Method Summary

Modifier and Type
Method
Description
`BigDecimal`
`getBigDecimal(String key)`
Deprecated.
2.3.0 in favor of `getBigDecimal(JsonKey)`
`BigDecimal`
`getBigDecimal(JsonKey key)`
A convenience method that assumes there is a BigDecimal, Number, or String at the given key.
`BigDecimal`
`getBigDecimalOrDefault(String key, BigDecimal defaultValue)`
Deprecated.
2.3.0 in favor of `getBigDecimalOrDefault(JsonKey)`
`BigDecimal`
`getBigDecimalOrDefault(JsonKey key)`
A convenience method that assumes there is a BigDecimal, Number, or String at the given key.
`Boolean`
`getBoolean(String key)`
Deprecated.
2.3.0 in favor of `getBoolean(JsonKey)`
`Boolean`
`getBoolean(JsonKey key)`
A convenience method that assumes there is a Boolean or String value at the given key.
`Boolean`
`getBooleanOrDefault(String key, boolean defaultValue)`
Deprecated.
2.3.0 in favor of `getBooleanOrDefault(JsonKey)`
`Boolean`
`getBooleanOrDefault(JsonKey key)`
A convenience method that assumes there is a Boolean or String value at the given key.
`Byte`
`getByte(String key)`
Deprecated.
2.3.0 in favor of `getByte(JsonKey)`
`Byte`
`getByte(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Byte`
`getByteOrDefault(String key, byte defaultValue)`
Deprecated.
2.3.0 in favor of `getByteOrDefault(JsonKey)`
`Byte`
`getByteOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`<T extends Collection<?>>
T`
`getCollection(String key)`
Deprecated.
2.3.0 in favor of `getCollection(JsonKey)`
`<T extends Collection<?>>
T`
`getCollection(JsonKey key)`
A convenience method that assumes there is a Collection at the given key.
`<T extends Collection<?>>
T`
`getCollectionOrDefault(String key, T defaultValue)`
Deprecated.
2.3.0 in favor of `getCollectionOrDefault(JsonKey)`
`<T extends Collection<?>>
T`
`getCollectionOrDefault(JsonKey key)`
A convenience method that assumes there is a Collection at the given key.
`Double`
`getDouble(String key)`
Deprecated.
2.3.0 in favor of `getDouble(JsonKey)`
`Double`
`getDouble(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Double`
`getDoubleOrDefault(String key, double defaultValue)`
Deprecated.
2.3.0 in favor of `getDoubleOrDefault(JsonKey)`
`Double`
`getDoubleOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`<T extends Enum<T>>
T`
`getEnum(String key)`
Deprecated.
2.3.0 in favor of `getEnum(JsonKey)`
`<T extends Enum<T>>
T`
`getEnum(JsonKey key)`
Deprecated.
2.3.0 Jsoner deprecated automatically serializing enums as Strings.
`<T extends Enum<T>>
T`
`getEnumOrDefault(String key, T defaultValue)`
Deprecated.
2.3.0 in favor of `getEnumOrDefault(JsonKey)`
`<T extends Enum<T>>
T`
`getEnumOrDefault(JsonKey key)`
Deprecated.
2.3.0 Jsoner deprecated automatically serializing enums as Strings.
`Float`
`getFloat(String key)`
Deprecated.
2.3.0 in favor of `getFloat(JsonKey)`
`Float`
`getFloat(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Float`
`getFloatOrDefault(String key, float defaultValue)`
Deprecated.
2.3.0 in favor of `getFloatOrDefault(JsonKey)`
`Float`
`getFloatOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Integer`
`getInteger(String key)`
Deprecated.
2.3.0 in favor of `getInteger(JsonKey)`
`Integer`
`getInteger(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Integer`
`getIntegerOrDefault(String key, int defaultValue)`
Deprecated.
2.3.0 in favor of `getIntegerOrDefault(JsonKey)`
`Integer`
`getIntegerOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Long`
`getLong(String key)`
Deprecated.
2.3.0 in favor of `getLong(JsonKey)`
`Long`
`getLong(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Long`
`getLongOrDefault(String key, long defaultValue)`
Deprecated.
2.3.0 in favor of `getLongOrDefault(JsonKey)`
`Long`
`getLongOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`<T extends Map<?, ?>>
T`
`getMap(String key)`
Deprecated.
2.3.0 in favor of `getMap(JsonKey)`
`<T extends Map<?, ?>>
T`
`getMap(JsonKey key)`
A convenience method that assumes there is a Map at the given key.
`<T extends Map<?, ?>>
T`
`getMapOrDefault(String key, T defaultValue)`
Deprecated.
2.3.0 in favor of `getMapOrDefault(JsonKey)`
`<T extends Map<?, ?>>
T`
`getMapOrDefault(JsonKey key)`
A convenience method that assumes there is a Map at the given key.
`Short`
`getShort(String key)`
Deprecated.
2.3.0 in favor of `getShort(JsonKey)`
`Short`
`getShort(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`Short`
`getShortOrDefault(String key, short defaultValue)`
Deprecated.
2.3.0 in favor of `getShortOrDefault(JsonKey)`
`Short`
`getShortOrDefault(JsonKey key)`
A convenience method that assumes there is a Number or String value at the given key.
`String`
`getString(String key)`
Deprecated.
2.3.0 in favor of `getString(JsonKey)`
`String`
`getString(JsonKey key)`
A convenience method that assumes there is a Boolean, Number, or String value at the given key.
`String`
`getStringOrDefault(String key, String defaultValue)`
Deprecated.
2.3.0 in favor of `getStringOrDefault(JsonKey)`
`String`
`getStringOrDefault(JsonKey key)`
A convenience method that assumes there is a Boolean, Number, or String value at the given key.
`void`
`requireKeys(JsonKey... keys)`
Ensures the given keys are present.
`String`
`toJson()`
Serialize to a JSON formatted string.
`void`
`toJson(Writer writable)`
Serialize to a JSON formatted stream.

### Methods inherited from class java.util.HashMap

`clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, newHashMap, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

### Methods inherited from class java.util.AbstractMap

`equals, hashCode, toString`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Map

`equals, hashCode`

## Constructor Details

### JsonObject

public JsonObject()
Instantiates an empty JsonObject.

### JsonObject

public JsonObject(Map<String,?> map)
Instantiate a new JsonObject by accepting a map's entries, which could lead to de/serialization issues of the resulting JsonObject since the entry values aren't validated as JSON values.

Parameters:
  `map` - represents the mappings to produce the JsonObject with.

## Method Details

### requireKeys

public void requireKeys(JsonKey... keys)
Ensures the given keys are present.

Parameters:
  `keys` - represents the keys that must be present.
Throws:
  `NoSuchElementException` - if any of the given keys are missing.
Since:
  2.3.0 to ensure critical keys are in the JsonObject.

### getBigDecimal

public BigDecimal getBigDecimal(JsonKey key)
A convenience method that assumes there is a BigDecimal, Number, or String at the given key. If a Number is there its Number#toString() is used to construct a new BigDecimal(String). If a String is there it is used to construct a new BigDecimal(String).

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a BigDecimal representing the value paired with the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `BigDecimal`
  - `Object.toString()`
  - `JsonKey`

### getBigDecimal

@Deprecated public BigDecimal getBigDecimal(String key)
Deprecated.
2.3.0 in favor of `getBigDecimal(JsonKey)`
A convenience method that assumes there is a BigDecimal, Number, or String at the given key. If a Number is there its Number#toString() is used to construct a new BigDecimal(String). If a String is there it is used to construct a new BigDecimal(String).

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `BigDecimal`
  - `Object.toString()`

### getBigDecimalOrDefault

public BigDecimal getBigDecimalOrDefault(JsonKey key)
A convenience method that assumes there is a BigDecimal, Number, or String at the given key. If a Number is there its Number#toString() is used to construct a new BigDecimal(String). If a String is there it is used to construct a new BigDecimal(String).

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a BigDecimal representing the value paired with the key or JsonKey#getValue() if the key isn't present.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `BigDecimal`
  - `Object.toString()`
  - `JsonKey`

### getBigDecimalOrDefault

@Deprecated public BigDecimal getBigDecimalOrDefault(String key, BigDecimal defaultValue)
Deprecated.
2.3.0 in favor of `getBigDecimalOrDefault(JsonKey)`
A convenience method that assumes there is a BigDecimal, Number, or String at the given key. If a Number is there its Number#toString() is used to construct a new BigDecimal(String). If a String is there it is used to construct a new BigDecimal(String).

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return types.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `BigDecimal`
  - `Object.toString()`

### getBoolean

public Boolean getBoolean(JsonKey key)
A convenience method that assumes there is a Boolean or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Boolean representing the value paired with the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getBoolean

@Deprecated public Boolean getBoolean(String key)
Deprecated.
2.3.0 in favor of `getBoolean(JsonKey)`
A convenience method that assumes there is a Boolean or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.

### getBooleanOrDefault

public Boolean getBooleanOrDefault(JsonKey key)
A convenience method that assumes there is a Boolean or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Boolean representing the value paired with the key or JsonKey#getValue() if the key isn't present.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getBooleanOrDefault

@Deprecated public Boolean getBooleanOrDefault(String key, boolean defaultValue)
Deprecated.
2.3.0 in favor of `getBooleanOrDefault(JsonKey)`
A convenience method that assumes there is a Boolean or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.

### getByte

public Byte getByte(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Byte representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.byteValue()`
  - `JsonKey`

### getByte

@Deprecated public Byte getByte(String key)
Deprecated.
2.3.0 in favor of `getByte(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.byteValue()`

### getByteOrDefault

public Byte getByteOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Byte representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.byteValue()`
  - `JsonKey`

### getByteOrDefault

@Deprecated public Byte getByteOrDefault(String key, byte defaultValue)
Deprecated.
2.3.0 in favor of `getByteOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.byteValue()`

### getCollection

public <T extends Collection<?>> T getCollection(JsonKey key)
A convenience method that assumes there is a Collection at the given key.

Type Parameters:
  `T` - the kind of collection to expect at the key. Note unless manually added, collection values will be a JsonArray.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Collection representing the value paired with the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getCollection

@Deprecated public <T extends Collection<?>> T getCollection(String key)
Deprecated.
2.3.0 in favor of `getCollection(JsonKey)`
A convenience method that assumes there is a Collection at the given key.

Type Parameters:
  `T` - the kind of collection to expect at the key. Note unless manually added, collection values will be a JsonArray.
Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.

### getCollectionOrDefault

public <T extends Collection<?>> T getCollectionOrDefault(JsonKey key)
A convenience method that assumes there is a Collection at the given key.

Type Parameters:
  `T` - the kind of collection to expect at the key. Note unless manually added, collection values will be a JsonArray.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Collection representing the value paired with the key or JsonKey#getValue() if the key isn't present..
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getCollectionOrDefault

@Deprecated public <T extends Collection<?>> T getCollectionOrDefault(String key, T defaultValue)
Deprecated.
2.3.0 in favor of `getCollectionOrDefault(JsonKey)`
A convenience method that assumes there is a Collection at the given key.

Type Parameters:
  `T` - the kind of collection to expect at the key. Note unless manually added, collection values will be a JsonArray.
Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.

### getDouble

public Double getDouble(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Double representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.doubleValue()`
  - `JsonKey`

### getDouble

@Deprecated public Double getDouble(String key)
Deprecated.
2.3.0 in favor of `getDouble(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.doubleValue()`

### getDoubleOrDefault

public Double getDoubleOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Double representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.doubleValue()`
  - `JsonKey`

### getDoubleOrDefault

@Deprecated public Double getDoubleOrDefault(String key, double defaultValue)
Deprecated.
2.3.0 in favor of `getDoubleOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.doubleValue()`

### getEnum

@Deprecated public <T extends Enum<T>> T getEnum(JsonKey key) throws ClassNotFoundException
Deprecated.
2.3.0 Jsoner deprecated automatically serializing enums as Strings.
A convenience method that assumes there is a String value at the given key representing a fully qualified name in dot notation of an enum.

Type Parameters:
  `T` - the Enum type the value at the key is expected to belong to.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  an Enum representing the value paired with the key.
Throws:
  `ClassNotFoundException` - if the value was a String but the declaring enum type couldn't be determined with it.
  `ClassCastException` - if the element at the index was not a String or if the fully qualified enum name is of the wrong type.
  `IllegalArgumentException` - if an enum type was determined but it doesn't define an enum with the determined name.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Enum.valueOf(Class, String)`
  - `JsonKey`

### getEnum

@Deprecated public <T extends Enum<T>> T getEnum(String key) throws ClassNotFoundException
Deprecated.
2.3.0 in favor of `getEnum(JsonKey)`
A convenience method that assumes there is a String value at the given key representing a fully qualified name in dot notation of an enum.

Type Parameters:
  `T` - the Enum type the value at the key is expected to belong to.
Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the enum based on the string found at the key, or null if the value paired with the provided key is null.
Throws:
  `ClassNotFoundException` - if the value was a String but the declaring enum type couldn't be determined with it.
  `ClassCastException` - if the element at the index was not a String or if the fully qualified enum name is of the wrong type.
  `IllegalArgumentException` - if an enum type was determined but it doesn't define an enum with the determined name.
See Also:
  - `Enum.valueOf(Class, String)`

### getEnumOrDefault

@Deprecated public <T extends Enum<T>> T getEnumOrDefault(JsonKey key) throws ClassNotFoundException
Deprecated.
2.3.0 Jsoner deprecated automatically serializing enums as Strings.
A convenience method that assumes there is a String value at the given key representing a fully qualified name in dot notation of an enum.

Type Parameters:
  `T` - the Enum type the value at the key is expected to belong to.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  an Enum representing the value paired with the key or JsonKey#getValue() if the key isn't present.
Throws:
  `ClassNotFoundException` - if the value was a String but the declaring enum type couldn't be determined with it.
  `ClassCastException` - if the element at the index was not a String or if the fully qualified enum name is of the wrong type.
  `IllegalArgumentException` - if an enum type was determined but it doesn't define an enum with the determined name.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Enum.valueOf(Class, String)`
  - `JsonKey`

### getEnumOrDefault

@Deprecated public <T extends Enum<T>> T getEnumOrDefault(String key, T defaultValue) throws ClassNotFoundException
Deprecated.
2.3.0 in favor of `getEnumOrDefault(JsonKey)`
A convenience method that assumes there is a String value at the given key representing a fully qualified name in dot notation of an enum.

Type Parameters:
  `T` - the Enum type the value at the key is expected to belong to.
Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the enum based on the string found at the key, or the defaultValue provided if the key doesn't exist, or null if the value paired with provided key is null.
Throws:
  `ClassNotFoundException` - if the value was a String but the declaring enum type couldn't be determined with it.
  `ClassCastException` - if the element at the index was not a String or if the fully qualified enum name is of the wrong type.
  `IllegalArgumentException` - if an enum type was determined but it doesn't define an enum with the determined name.
See Also:
  - `Enum.valueOf(Class, String)`

### getFloat

public Float getFloat(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Float representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.floatValue()`
  - `JsonKey`

### getFloat

@Deprecated public Float getFloat(String key)
Deprecated.
2.3.0 in favor of `getFloat(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.floatValue()`

### getFloatOrDefault

public Float getFloatOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Float representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.floatValue()`
  - `JsonKey`

### getFloatOrDefault

@Deprecated public Float getFloatOrDefault(String key, float defaultValue)
Deprecated.
2.3.0 in favor of `getFloatOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.floatValue()`

### getInteger

public Integer getInteger(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  an Integer representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.intValue()`
  - `JsonKey`

### getInteger

@Deprecated public Integer getInteger(String key)
Deprecated.
2.3.0 in favor of `getInteger(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.intValue()`

### getIntegerOrDefault

public Integer getIntegerOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  an Integer representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.intValue()`
  - `JsonKey`

### getIntegerOrDefault

@Deprecated public Integer getIntegerOrDefault(String key, int defaultValue)
Deprecated.
2.3.0 in favor of `getIntegerOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.intValue()`

### getLong

public Long getLong(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Long representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.longValue()`
  - `JsonKey`

### getLong

@Deprecated public Long getLong(String key)
Deprecated.
2.3.0 in favor of `getLong(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.longValue()`

### getLongOrDefault

public Long getLongOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Long representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.longValue()`
  - `JsonKey`

### getLongOrDefault

@Deprecated public Long getLongOrDefault(String key, long defaultValue)
Deprecated.
2.3.0 in favor of `getLongOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.longValue()`

### getMap

public <T extends Map<?, ?>> T getMap(JsonKey key)
A convenience method that assumes there is a Map at the given key.

Type Parameters:
  `T` - the kind of map to expect at the key. Note unless manually added, Map values will be a JsonObject.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Map representing the value paired with the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getMap

@Deprecated public <T extends Map<?, ?>> T getMap(String key)
Deprecated.
2.3.0 in favor of `getMap(JsonKey)`
A convenience method that assumes there is a Map at the given key.

Type Parameters:
  `T` - the kind of map to expect at the key. Note unless manually added, Map values will be a JsonObject.
Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.

### getMapOrDefault

public <T extends Map<?, ?>> T getMapOrDefault(JsonKey key)
A convenience method that assumes there is a Map at the given key.

Type Parameters:
  `T` - the kind of map to expect at the key. Note unless manually added, Map values will be a JsonObject.
Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Map representing the value paired with the key or JsonKey#getValue() if the key isn't present.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getMapOrDefault

@Deprecated public <T extends Map<?, ?>> T getMapOrDefault(String key, T defaultValue)
Deprecated.
2.3.0 in favor of `getMapOrDefault(JsonKey)`
A convenience method that assumes there is a Map at the given key.

Type Parameters:
  `T` - the kind of map to expect at the key. Note unless manually added, Map values will be a JsonObject.
Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.

### getShort

public Short getShort(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Short representing the value paired with the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.shortValue()`
  - `JsonKey`

### getShort

@Deprecated public Short getShort(String key)
Deprecated.
2.3.0 in favor of `getShort(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.shortValue()`

### getShortOrDefault

public Short getShortOrDefault(JsonKey key)
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a Short representing the value paired with the key or JsonKey#getValue() if the key isn't present (which may involve rounding or truncation).
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `Number.shortValue()`
  - `JsonKey`

### getShortOrDefault

@Deprecated public Short getShortOrDefault(String key, short defaultValue)
Deprecated.
2.3.0 in favor of `getShortOrDefault(JsonKey)`
A convenience method that assumes there is a Number or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key (which may involve rounding or truncation) or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.
  `NumberFormatException` - if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.
See Also:
  - `Number.shortValue()`

### getString

public String getString(JsonKey key)
A convenience method that assumes there is a Boolean, Number, or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a String representing the value paired with the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getString

@Deprecated public String getString(String key)
Deprecated.
2.3.0 in favor of `getString(JsonKey)`
A convenience method that assumes there is a Boolean, Number, or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
Returns:
  the value stored at the key.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.

### getStringOrDefault

public String getStringOrDefault(JsonKey key)
A convenience method that assumes there is a Boolean, Number, or String value at the given key.

Parameters:
  `key` - representing where the value ought to be paired with.
Returns:
  a String representing the value paired with the key or JsonKey#getValue() if the key isn't present.
Throws:
  `ClassCastException` - if the value didn't match the assumed return type.
Since:
  2.3.0 to utilize JsonKey
See Also:
  - `JsonKey`

### getStringOrDefault

@Deprecated public String getStringOrDefault(String key, String defaultValue)
Deprecated.
2.3.0 in favor of `getStringOrDefault(JsonKey)`
A convenience method that assumes there is a Boolean, Number, or String value at the given key.

Parameters:
  `key` - representing where the value ought to be stored at.
  `defaultValue` - representing what is returned when the key isn't in the JsonObject.
Returns:
  the value stored at the key or the default provided if the key doesn't exist.
Throws:
  `ClassCastException` - if there was a value but didn't match the assumed return type.

### toJson

public String toJson()
Description copied from interface: `Jsonable`
Serialize to a JSON formatted string.

Specified by:
  `toJson` in interface `Jsonable`
Returns:
  a string, formatted in JSON, that represents the Jsonable.

### toJson

public void toJson(Writer writable) throws IOException
Description copied from interface: `Jsonable`
Serialize to a JSON formatted stream.

Specified by:
  `toJson` in interface `Jsonable`
Parameters:
  `writable` - where the resulting JSON text should be sent.
Throws:
  `IOException` - when the writable encounters an I/O error.