Class JsonObject
- java.lang.Object
-
- com.couchbase.client.java.json.JsonValue
-
- com.couchbase.client.java.json.JsonObject
-
- All Implemented Interfaces:
Serializable
public class JsonObject extends JsonValue implements Serializable
Represents a JSON object that can be stored and loaded from Couchbase Server. If boxed return values are unboxed, the calling code needs to make sure to handle potentialNullPointerExceptions. TheJsonObjectis backed by aMapand is intended to work similar to it API wise, but to only allow to store such objects which can be represented by JSON.- Since:
- 2.0
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsKey(String name)Checks if theJsonObjectcontains the field name.booleancontainsValue(Object value)Checks if theJsonObjectcontains the value.static JsonObjectcreate()Creates a emptyJsonObject.static JsonObjectcreate(int initialCapacity)Creates a emptyJsonObject.JsonObjectCryptocrypto(CryptoManager cryptoManager)Returns a view of the object for reading and writing encrypted fields.JsonObjectCryptocrypto(Collection collection)Returns a view of the object for reading and writing encrypted fields.JsonObjectCryptocrypto(ClusterEnvironment env)Returns a view of the object for reading and writing encrypted fields.booleanequals(Object o)static JsonObjectfrom(Map<String,?> mapData)Constructs aJsonObjectfrom aMap<String, ?>.static JsonObjectfromJson(byte[] s)static JsonObjectfromJson(String s)Static method to create aJsonObjectfrom a JSONString.Objectget(String name)Retrieves the (potential null) content and not casting its type.JsonArraygetArray(String name)Retrieves the value from the field name and casts it toJsonArray.BigDecimalgetBigDecimal(String name)Retrieves the value from the field name and casts it toBigDecimal.BigIntegergetBigInteger(String name)Retrieves the value from the field name and casts it toBigInteger.BooleangetBoolean(String name)Retrieves the value from the field name and casts it toBoolean.DoublegetDouble(String name)Retrieves the value from the field name and casts it toDouble.IntegergetInt(String name)Retrieves the value from the field name and casts it toInteger.LonggetLong(String name)Retrieves the value from the field name and casts it toLong.Set<String>getNames()Returns a set of field names on theJsonObject.NumbergetNumber(String name)Retrieves the value from the field name and casts it toNumber.JsonObjectgetObject(String name)Retrieves the value from the field name and casts it toJsonObject.StringgetString(String name)Retrieves the value from the field name and casts it toString.inthashCode()booleanisEmpty()Returns true if theJsonObjectis empty, false otherwise.JsonObjectput(String name, boolean value)Stores aBooleanvalue identified by the field name.JsonObjectput(String name, double value)Stores aDoublevalue identified by the field name.JsonObjectput(String name, int value)Stores aIntegervalue identified by the field name.JsonObjectput(String name, long value)Stores aLongvalue identified by the field name.JsonObjectput(String name, JsonArray value)Stores aJsonArrayvalue identified by the field name.JsonObjectput(String name, JsonObject value)Stores aJsonObjectvalue identified by the field name.JsonObjectput(String name, Number value)Stores aNumbervalue identified by the field name.JsonObjectput(String name, Object value)Stores aObjectvalue identified by the field name.JsonObjectput(String name, String value)Stores aStringvalue identified by the field name.JsonObjectput(String name, List<?> value)Stores aJsonArrayvalue identified by the field name.JsonObjectput(String name, Map<String,?> value)Attempt to convert aMapto aJsonObjectvalue and store it, identified by the field name.JsonObjectputNull(String name)Store a null value identified by the field's name.JsonObjectremoveKey(String name)Removes an entry from theJsonObject.intsize()The size of theJsonObject.byte[]toBytes()Similar totoString()but turns this object directly into an encoded byte array.Map<String,Object>toMap()Transforms theJsonObjectinto aMap.StringtoString()Converts theJsonObjectinto its JSON string representation.
-
-
-
Method Detail
-
create
public static JsonObject create()
Creates a emptyJsonObject.- Returns:
- a empty
JsonObject.
-
create
public static JsonObject create(int initialCapacity)
Creates a emptyJsonObject.- Parameters:
initialCapacity- the initial capacity for the object.- Returns:
- a empty
JsonObject.
-
from
public static JsonObject from(Map<String,?> mapData)
Constructs aJsonObjectfrom aMap<String, ?>. This is only possible if the given Map is well formed, that is it contains non null keys, and all values are of a supported type. A null input Map or null key will lead to aNullPointerExceptionbeing thrown. If any unsupported value is present in the Map, anInvalidArgumentExceptionwill be thrown. *Sub Maps and Lists* If possible, Maps and Lists contained in mapData will be converted to JsonObject and JsonArray respectively. However, same restrictions apply. Any non-convertible collection will raise aClassCastException. If the sub-conversion raises an exception (like an InvalidArgumentException) then it is put as cause for the ClassCastException.- Parameters:
mapData- the Map to convert to a JsonObject- Returns:
- the resulting JsonObject
- Throws:
InvalidArgumentException- in case one or more unsupported values are presentNullPointerException- in case a null map is provided or if it contains a null keyClassCastException- if map contains a sub-Map or sub-List not supported (see above)
-
fromJson
public static JsonObject fromJson(String s)
Static method to create aJsonObjectfrom a JSONString. The string is expected to be a valid JSON object representation (eg. starting with a '{').- Parameters:
s- the JSON String to convert to aJsonObject.- Returns:
- the corresponding
JsonObject. - Throws:
InvalidArgumentException- if the conversion cannot be done.
-
fromJson
public static JsonObject fromJson(byte[] s)
-
crypto
@Volatile public JsonObjectCrypto crypto(CryptoManager cryptoManager)
Returns a view of the object for reading and writing encrypted fields.The returned
JsonObjectCryptouses the default encrypter. To use a different encrypter, chain this call withJsonObjectCrypto.withEncrypter(String).Note: Use of the Field-Level Encryption functionality is subject to the Couchbase Inc. Enterprise Subscription License Agreement v7
- Parameters:
cryptoManager- the manager to use for encryption and decryption
-
crypto
@Volatile public JsonObjectCrypto crypto(Collection collection)
Returns a view of the object for reading and writing encrypted fields.The returned
JsonObjectCryptouses the default encrypter. To use a different encrypter, chain this call withJsonObjectCrypto.withEncrypter(String).Note: Use of the Field-Level Encryption functionality is subject to the Couchbase Inc. Enterprise Subscription License Agreement v7
- Throws:
IllegalStateException- if no CryptoManager was configured for the collection's cluster environment
-
crypto
@Volatile public JsonObjectCrypto crypto(ClusterEnvironment env)
Returns a view of the object for reading and writing encrypted fields.The returned
JsonObjectCryptouses the default encrypter. To use a different encrypter, chain this call withJsonObjectCrypto.withEncrypter(String).Note: Use of the Field-Level Encryption functionality is subject to the Couchbase Inc. Enterprise Subscription License Agreement v7
- Throws:
IllegalStateException- if no CryptoManager was configured for this cluster environment
-
put
public JsonObject put(String name, Object value)
Stores aObjectvalue identified by the field name. Note that the value is checked and aInvalidArgumentExceptionis thrown if not supported.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
get
public Object get(String name)
Retrieves the (potential null) content and not casting its type.- Parameters:
name- the key of the field.- Returns:
- the value of the field, or null if it does not exist.
-
put
public JsonObject put(String name, String value)
Stores aStringvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getString
public String getString(String name)
Retrieves the value from the field name and casts it toString.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, int value)
Stores aIntegervalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getInt
public Integer getInt(String name)
Retrieves the value from the field name and casts it toInteger. Note that if value was stored as another numerical type, some truncation or rounding may occur.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, long value)
Stores aLongvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getLong
public Long getLong(String name)
Retrieves the value from the field name and casts it toLong. Note that if value was stored as another numerical type, some truncation or rounding may occur.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, double value)
Stores aDoublevalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getDouble
public Double getDouble(String name)
Retrieves the value from the field name and casts it toDouble. Note that if value was stored as another numerical type, some truncation or rounding may occur.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, boolean value)
Stores aBooleanvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getBoolean
public Boolean getBoolean(String name)
Retrieves the value from the field name and casts it toBoolean.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, JsonObject value)
Stores aJsonObjectvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
put
public JsonObject put(String name, Map<String,?> value)
Attempt to convert aMapto aJsonObjectvalue and store it, identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject. - See Also:
from(Map)
-
getObject
public JsonObject getObject(String name)
Retrieves the value from the field name and casts it toJsonObject.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
put
public JsonObject put(String name, JsonArray value)
Stores aJsonArrayvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
put
public JsonObject put(String name, Number value)
Stores aNumbervalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
put
public JsonObject put(String name, List<?> value)
Stores aJsonArrayvalue identified by the field name.- Parameters:
name- the name of the JSON field.value- the value of the JSON field.- Returns:
- the
JsonObject.
-
getArray
public JsonArray getArray(String name)
Retrieves the value from the field name and casts it toJsonArray.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
getBigInteger
public BigInteger getBigInteger(String name)
Retrieves the value from the field name and casts it toBigInteger.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
getBigDecimal
public BigDecimal getBigDecimal(String name)
Retrieves the value from the field name and casts it toBigDecimal.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
getNumber
public Number getNumber(String name)
Retrieves the value from the field name and casts it toNumber.- Parameters:
name- the name of the field.- Returns:
- the result or null if it does not exist.
-
putNull
public JsonObject putNull(String name)
Store a null value identified by the field's name. This method is equivalent to callingput(String, Object)with eitherJsonValue.NULLor a null value explicitly cast to Object.- Parameters:
name- The null field's name.- Returns:
- the
JsonObject
-
removeKey
public JsonObject removeKey(String name)
Removes an entry from theJsonObject.- Parameters:
name- the name of the field to remove- Returns:
- the
JsonObject
-
getNames
public Set<String> getNames()
Returns a set of field names on theJsonObject.- Returns:
- the set of names on the object.
-
isEmpty
public boolean isEmpty()
Returns true if theJsonObjectis empty, false otherwise.- Returns:
- true if empty, false otherwise.
-
toMap
public Map<String,Object> toMap()
Transforms theJsonObjectinto aMap. The resulting map is not backed by thisJsonObject, and all sub-objects or sub-arrays (JsonArray) are also recursively converted to maps and lists, respectively.- Returns:
- the content copied as a
Map.
-
containsKey
public boolean containsKey(String name)
Checks if theJsonObjectcontains the field name.- Parameters:
name- the name of the field.- Returns:
- true if its contained, false otherwise.
-
containsValue
public boolean containsValue(Object value)
Checks if theJsonObjectcontains the value.- Parameters:
value- the actual value.- Returns:
- true if its contained, false otherwise.
-
size
public int size()
The size of theJsonObject.- Returns:
- the size.
-
toString
public String toString()
Converts theJsonObjectinto its JSON string representation.- Overrides:
toStringin classObject- Returns:
- the JSON string representing this
JsonObject.
-
toBytes
public byte[] toBytes()
Similar totoString()but turns this object directly into an encoded byte array.- Returns:
- the byte array representing this
JsonObject.
-
-