public class JsonObjectDefault extends JsonObjectArrayBase implements JsonObject
JsonObject implementation.| Modifier and Type | Class and Description |
|---|---|
protected static interface |
JsonObjectDefault.IFirstElementGetter<T> |
JsonObjectArrayBase.JsonPathCachingItem| Modifier and Type | Field and Description |
|---|---|
protected org.slf4j.Logger |
logger |
defaultElementValidator| Constructor and Description |
|---|
JsonObjectDefault(JsonManager jsonManager,
SpincastUtils spincastUtils,
ObjectConverter objectConverter,
ValidationFactory validationFactory)
Constructor
|
JsonObjectDefault(Map<String,Object> initialMap,
boolean mutable,
JsonManager jsonManager,
SpincastUtils spincastUtils,
ObjectConverter objectConverter,
ValidationFactory validationFactory)
Constructor
|
JsonObjectDefault(Map<String,Object> initialMap,
JsonManager jsonManager,
SpincastUtils spincastUtils,
ObjectConverter objectConverter,
ValidationFactory validationFactory)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
JsonObject |
clear()
Clears all elements.
|
JsonObject |
clone(boolean mutable)
Clone the object.
|
<T> T |
convert(Class<T> clazz)
Converts the
JsonObject to an instance of
the specified T type. |
Map<String,Object> |
convertToPlainMap()
Converts the
JsonObject to a plain Map. |
protected Object |
getElementNoKeyParsing(String jsonPath,
boolean hasDefaultValue,
Object defaultValue)
Gets the element at this key/index, without
key parsing.
|
protected Map<String,Object> |
getMap() |
boolean |
isElementExistsNoKeyParsing(String key)
Does the JsonObject contain an element at
the specified key?
The key is considered as is, without
being parsed as a
JsonPath. |
boolean |
isEquivalentTo(JsonObject other)
Compares the current
JsonObject to the specified one
and returns true if they are equivalent. |
Iterator<Map.Entry<String,Object>> |
iterator() |
JsonObject |
merge(JsonObject jsonObj)
Merges the specified
JsonObject properties in the current
object. |
JsonObject |
merge(JsonObject jsonObj,
boolean clone)
Merges the specified
JsonObject properties in the current
object. |
JsonObject |
merge(Map<String,Object> map)
Merges all the specified Map elements in the JsonObject.
|
JsonObject |
merge(Map<String,Object> map,
boolean clone)
Merges all the specified Map elements in the JsonObject.
|
JsonObject |
merge(ToJsonObjectConvertible obj)
Transforms the specifie3d object to
JsonObject
and merges its properties in the current
object. |
protected JsonObject |
putAsIs(String key,
Object value) |
JsonObject |
putNoKeyParsing(String jsonPath,
Object value)
Puts an element at the specified key, without parsing this
key as a
JsonPath. |
JsonObject |
putNoKeyParsing(String jsonPath,
Object value,
boolean clone)
Puts an element at the specified key, without parsing this
key as a
JsonPath. |
JsonObject |
remove(String jsonPath)
Removes a property at
JsonPath
from the object. |
JsonObject |
removeNoKeyParsing(String key)
Removes a element from the object.
|
int |
size()
The size of the object.
|
void |
transformAll(ElementTransformer transformer,
boolean recursive)
Transforms all the elements of the object, using the specified
transformer.
|
JsonObjectValidationSet |
validationSet()
Creates a new, empty validation set, for that
JsonObject. |
clone, getArrayFirst, getArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBooleanNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstDate, getArrayFirstDate, getArrayFirstDate, getArrayFirstDateNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstDoubleNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstFloatNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstIntegerNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstLong, getArrayFirstLong, getArrayFirstLong, getArrayFirstLongNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstString, getArrayFirstString, getArrayFirstString, getArrayFirstStringNoKeyParsing, getArrayFirstStringNoKeyParsing, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimalElement, getBigDecimalFromObject, getBigDecimalNoKeyParsing, getBigDecimalNoKeyParsing, getBoolean, getBoolean, getBoolean, getBooleanElement, getBooleanFromObject, getBooleanNoKeyParsing, getBooleanNoKeyParsing, getBytesFromBase64String, getBytesFromBase64String, getBytesFromBase64String, getBytesFromBase64StringElement, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringValueFromObject, getDate, getDate, getDate, getDateElement, getDateFromObject, getDateNoKeyParsing, getDateNoKeyParsing, getdefaultElementValidator, getDouble, getDouble, getDouble, getDoubleElement, getDoubleFromObject, getDoubleNoKeyParsing, getDoubleNoKeyParsing, getElement, getFloat, getFloat, getFloat, getFloatElement, getFloatFromObject, getFloatNoKeyParsing, getFloatNoKeyParsing, getInteger, getInteger, getInteger, getIntegerElement, getIntegerFromObject, getIntegerNoKeyParsing, getIntegerNoKeyParsing, getJsonArray, getJsonArray, getJsonArray, getJsonArrayFromObject, getJsonArrayNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayOrEmpty, getJsonArrayOrEmptyNoKeyParsing, getJsonManager, getJsonObject, getJsonObject, getJsonObject, getJsonObject, getJsonObjectFromObject, getJsonObjectNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectOrEmpty, getJsonObjectOrEmptyNoKeyParsing, getJsonPathCachingMap, getLong, getLong, getLong, getLongElement, getLongFromObject, getLongNoKeyParsing, getLongNoKeyParsing, getObject, getObject, getObject, getObjectConverter, getObjectNoKeyParsing, getObjectNoKeyParsing, getSpincastUtils, getString, getString, getString, getString, getStringFromObject, getStringNoKeyParsing, getStringNoKeyParsing, getTrimTransformer, getValidationFactory, isCanBeConvertedToBigDecimal, isCanBeConvertedToBigDecimal, isCanBeConvertedToBigDecimalNoKeyParsing, isCanBeConvertedToBoolean, isCanBeConvertedToBoolean, isCanBeConvertedToBooleanNoKeyParsing, isCanBeConvertedToByteArray, isCanBeConvertedToByteArray, isCanBeConvertedToByteArrayNoKeyParsing, isCanBeConvertedToDate, isCanBeConvertedToDate, isCanBeConvertedToDateNoKeyParsing, isCanBeConvertedToDouble, isCanBeConvertedToDouble, isCanBeConvertedToDoubleNoKeyParsing, isCanBeConvertedToFloat, isCanBeConvertedToFloat, isCanBeConvertedToFloatNoKeyParsing, isCanBeConvertedToInteger, isCanBeConvertedToInteger, isCanBeConvertedToIntegerNoKeyParsing, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonArrayNoKeyParsing, isCanBeConvertedToJsonObject, isCanBeConvertedToJsonObject, isCanBeConvertedToJsonObjectNoKeyParsing, isCanBeConvertedToLong, isCanBeConvertedToLong, isCanBeConvertedToLongNoKeyParsing, isCanBeConvertedToString, isCanBeConvertedToString, isCanBeConvertedToStringNoKeyParsing, isElementExists, isMutable, isNull, isNullNoKeyParsing, isOfTypeBigDecimal, isOfTypeBigDecimalNoKeyParsing, isOfTypeBoolean, isOfTypeBoolean, isOfTypeBooleanNoKeyParsing, isOfTypeByteArray, isOfTypeByteArray, isOfTypeByteArrayNoKeyParsing, isOfTypeDate, isOfTypeDate, isOfTypeDateNoKeyParsing, isOfTypeDouble, isOfTypeDouble, isOfTypeDoubleNoKeyParsing, isOfTypeeBigDecimal, isOfTypeFloat, isOfTypeFloat, isOfTypeFloatNoKeyParsing, isOfTypeInteger, isOfTypeInteger, isOfTypeIntegerNoKeyParsing, isOfTypeJsonArray, isOfTypeJsonArray, isOfTypeJsonArrayNoKeyParsing, isOfTypeJsonObject, isOfTypeJsonObject, isOfTypeJsonObjectNoKeyParsing, isOfTypeLong, isOfTypeLong, isOfTypeLongNoKeyParsing, isOfTypeString, isOfTypeString, isOfTypeStringNoKeyParsing, put, put, put, toJsonString, toJsonString, toString, transform, transformAll, trim, trimAll, trimAll, validateIsNullequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetArrayFirstBigDecimalNoKeyParsing, getArrayFirstBigDecimalNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBooleanNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstBytesFromBase64StringNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDateNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstDoubleNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstFloatNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstIntegerNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonArrayNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstJsonObjectNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstLongNoKeyParsing, getArrayFirstStringNoKeyParsing, getArrayFirstStringNoKeyParsing, getBigDecimalNoKeyParsing, getBigDecimalNoKeyParsing, getBooleanNoKeyParsing, getBooleanNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getBytesFromBase64StringNoKeyParsing, getDateNoKeyParsing, getDateNoKeyParsing, getDoubleNoKeyParsing, getDoubleNoKeyParsing, getFloatNoKeyParsing, getFloatNoKeyParsing, getIntegerNoKeyParsing, getIntegerNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayNoKeyParsing, getJsonArrayOrEmptyNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectNoKeyParsing, getJsonObjectOrEmptyNoKeyParsing, getLongNoKeyParsing, getLongNoKeyParsing, getObjectNoKeyParsing, getObjectNoKeyParsing, getStringNoKeyParsing, getStringNoKeyParsing, isCanBeConvertedToBigDecimalNoKeyParsing, isCanBeConvertedToBooleanNoKeyParsing, isCanBeConvertedToByteArrayNoKeyParsing, isCanBeConvertedToDateNoKeyParsing, isCanBeConvertedToDoubleNoKeyParsing, isCanBeConvertedToFloatNoKeyParsing, isCanBeConvertedToIntegerNoKeyParsing, isCanBeConvertedToJsonArrayNoKeyParsing, isCanBeConvertedToJsonObjectNoKeyParsing, isCanBeConvertedToLongNoKeyParsing, isCanBeConvertedToStringNoKeyParsing, isNullNoKeyParsing, isOfTypeBigDecimalNoKeyParsing, isOfTypeBooleanNoKeyParsing, isOfTypeByteArrayNoKeyParsing, isOfTypeDateNoKeyParsing, isOfTypeDoubleNoKeyParsing, isOfTypeFloatNoKeyParsing, isOfTypeIntegerNoKeyParsing, isOfTypeJsonArrayNoKeyParsing, isOfTypeJsonObjectNoKeyParsing, isOfTypeLongNoKeyParsing, isOfTypeStringNoKeyParsinggetArrayFirstBigDecimal, getArrayFirstBigDecimal, getArrayFirstBoolean, getArrayFirstBoolean, getArrayFirstBytesFromBase64String, getArrayFirstBytesFromBase64String, getArrayFirstDate, getArrayFirstDate, getArrayFirstDouble, getArrayFirstDouble, getArrayFirstFloat, getArrayFirstFloat, getArrayFirstInteger, getArrayFirstInteger, getArrayFirstJsonArray, getArrayFirstJsonArray, getArrayFirstJsonObject, getArrayFirstJsonObject, getArrayFirstLong, getArrayFirstLong, getArrayFirstString, getArrayFirstString, getBigDecimal, getBigDecimal, getBoolean, getBoolean, getBytesFromBase64String, getBytesFromBase64String, getDate, getDate, getDouble, getDouble, getFloat, getFloat, getInteger, getInteger, getJsonArray, getJsonArray, getJsonArrayOrEmpty, getJsonObject, getJsonObject, getJsonObjectOrEmpty, getLong, getLong, getObject, getObject, getString, getString, isCanBeConvertedToBigDecimal, isCanBeConvertedToBoolean, isCanBeConvertedToByteArray, isCanBeConvertedToDate, isCanBeConvertedToDouble, isCanBeConvertedToFloat, isCanBeConvertedToInteger, isCanBeConvertedToJsonArray, isCanBeConvertedToJsonObject, isCanBeConvertedToLong, isCanBeConvertedToString, isElementExists, isMutable, isNull, isOfTypeBigDecimal, isOfTypeBoolean, isOfTypeByteArray, isOfTypeDate, isOfTypeDouble, isOfTypeFloat, isOfTypeInteger, isOfTypeJsonArray, isOfTypeJsonObject, isOfTypeLong, isOfTypeString, put, put, toJsonString, toJsonString, transform, transformAll, trim, trimAll, trimAllforEach, spliteratorpublic JsonObjectDefault(JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter, ValidationFactory validationFactory)
public JsonObjectDefault(@Nullable Map<String,Object> initialMap, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter, ValidationFactory validationFactory)
public JsonObjectDefault(@Nullable Map<String,Object> initialMap, boolean mutable, JsonManager jsonManager, SpincastUtils spincastUtils, ObjectConverter objectConverter, ValidationFactory validationFactory)
protected JsonObject putAsIs(String key, Object value)
putAsIs in class JsonObjectArrayBasepublic JsonObject putNoKeyParsing(String jsonPath, Object value)
JsonObjectJsonPath.
If the element to add is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If the element to add is a JsonObject or
a JsonArray and is immutable, it will be cloned.
Doing so, we can make sure the JsonArray is always
fully mutable or fully immutable.
If the element implements ToJsonObjectConvertible, it
will be converted to a JsonObject using the associated
conversion method. If it implements ToJsonArrayConvertible, it
will be converted to an JsonArray using the associated
conversion method.
Those are the types of objects that will be converted to a
JsonArray instead of a JsonObject, if
no conversion interface is implemented :
putNoKeyParsing in interface JsonObjectpublic JsonObject putNoKeyParsing(String jsonPath, Object value, boolean clone)
JsonObjectJsonPath.
If the element to add is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If the element to add is a JsonObject or
a JsonArray and is immutable, it will be cloned.
Doing so, we can make sure the JsonArray is always
fully mutable or fully immutable.
If the element implements ToJsonObjectConvertible, it
will be converted to a JsonObject using the associated
conversion method. If it implements ToJsonArrayConvertible, it
will be converted to an JsonArray using the associated
conversion method.
Those are the types of objects that will be converted to a
JsonArray instead of a JsonObject, if
no conversion interface is implemented :
putNoKeyParsing in interface JsonObjectclone - if true, and the element to add is a
JsonObject or JsonArray, a clone will be made
before being added. If that case, any modification to the
original element won't affect the added one,
and vice-versa. If the element is immutable then it will
always be cloned. Doing so, we can make sure a
JsonObject is always
fully mutable or fully immutable.public JsonObject merge(Map<String,Object> map)
JsonObjectJsonPaths.
Overwrites existing elements at the specified JsonPaths.
Note that the JsonObject and JsonArray objects from the source
will be added as is, so any modification to them WILL affect
the added elements, and vise-versa. There is an exception though :
if the element to add is immutable
then it will always be cloned. Doing so, we can make sure a
JsonObject is always
fully mutable or fully immutable.
If an element to is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If an element to is a JsonObject or
a JsonArray and is immutable, it will be cloned.
Doing so, we can make sure the JsonArray is always
fully mutable or fully immutable.
If an element implements ToJsonObjectConvertible, it
will be converted to a JsonObject using the associated
conversion method. If it implements ToJsonArrayConvertible, it
will be converted to an JsonArray using the associated
conversion method.
Those are the types of objects that will be converted to a
JsonArray instead of a JsonObject, if
no conversion interface is implemented :
merge in interface JsonObjectpublic JsonObject merge(Map<String,Object> map, boolean clone)
JsonObjectJsonPaths.
Overwrites existing elements at the specified JsonPaths.
If an element to is not of a native type, then the element is converted before being added. Once the element is converted and added, a modification of the original object won't affect this element, and vice-versa.
If an element to is a JsonObject or
a JsonArray and is immutable, it will be cloned.
Doing so, we can make sure the JsonArray is always
fully mutable or fully immutable.
If an element implements ToJsonObjectConvertible, it
will be converted to a JsonObject using the associated
conversion method. If it implements ToJsonArrayConvertible, it
will be converted to an JsonArray using the associated
conversion method.
Those are the types of objects that will be converted to a
JsonArray instead of a JsonObject, if
no conversion interface is implemented :
merge in interface JsonObjectclone - if true, a clone of any
JsonObject or JsonArray will be made
before being added. If that case, any modification to the
original elements won't affect the added elements,
and vice-versa. If the element is immutable then it will
always be cloned. Doing so, we can make sure a
JsonObject is always
fully mutable or fully immutable.public JsonObject merge(JsonObject jsonObj)
JsonObjectJsonObject properties in the current
object. Overwrites elements of the same JsonPaths.
Note that the elements from the source are added as is,
so any modification to them WILL affect the added element,
and vise-versa. There is an exception though :
if an element to add is immutable
then it will always be cloned. Doing so, we can make sure a
JsonObject is always
fully mutable or fully immutable.
merge in interface JsonObjectpublic JsonObject merge(ToJsonObjectConvertible obj)
JsonObjectJsonObject
and merges its properties in the current
object. Overwrites elements of the same JsonPaths.merge in interface JsonObjectpublic JsonObject merge(JsonObject jsonObj, boolean clone)
JsonObjectJsonObject properties in the current
object. Overwrites elements of the same JsonPaths.merge in interface JsonObjectclone - if true, a clone of the original
JsonObject will be made before being added.
If that case, any modification to the original object
won't affect the added element, and vice-versa.
If an element is immutable then it will
always be cloned. Doing so, we can make sure a
JsonObject is always
fully mutable or fully immutable.public JsonObject remove(String jsonPath)
JsonPath
from the object.remove in interface JsonObjectOrArraypublic JsonObject removeNoKeyParsing(String key)
JsonObjectJsonPath.removeNoKeyParsing in interface JsonObjectpublic JsonObject clear()
JsonObjectOrArrayclear in interface JsonObjectOrArraypublic boolean isElementExistsNoKeyParsing(String key)
JsonObjectJsonPath.isElementExistsNoKeyParsing in interface JsonObjectprotected Object getElementNoKeyParsing(String jsonPath, boolean hasDefaultValue, Object defaultValue)
JsonObjectArrayBasegetElementNoKeyParsing in class JsonObjectArrayBasepublic Map<String,Object> convertToPlainMap()
JsonObjectJsonObject to a plain Map.
All JsonObject children will be converted to
Maps and all JsonArray children will be converted to
Lists.convertToPlainMap in interface JsonObjectpublic <T> T convert(Class<T> clazz)
JsonObjectJsonObject to an instance of
the specified T type.
This uses JsonManager#fromJsonString
and may throw an exception if it is unable to do the conversion.
convert in interface JsonObjectpublic int size()
JsonObjectOrArraysize in interface JsonObjectOrArraypublic boolean isEquivalentTo(JsonObject other)
JsonObjectJsonObject to the specified one
and returns true if they are equivalent. To be equivalent,
all their elements must be so too.
An element is equivalent to the other if they can be converted to the¸ same type, and then if they are equals.
For example, the String "123" is equivalent to
new BigDecimal("123") or to 123L.
isEquivalentTo in interface JsonObjectpublic JsonObject clone(boolean mutable)
JsonObjectArrayBaseclone in interface JsonObjectclone in interface JsonObjectOrArrayclone in class JsonObjectArrayBasemutable - if true the resulting
object and all its children will be mutable, otherwise
they will all be immutable.public void transformAll(ElementTransformer transformer, boolean recursive)
JsonObjectOrArraytransformAll in interface JsonObjectOrArraytransformAll in class JsonObjectArrayBaserecursive - if true,
then all children elements will also be transformed,
recursively.public JsonObjectValidationSet validationSet()
JsonObjectOrArrayJsonObject.validationSet in interface JsonObjectOrArrayCopyright © 2017. All rights reserved.