public class JsonObject extends Object implements Iterable<Map.Entry<String,Object>>, io.vertx.core.shareddata.impl.ClusterSerializable, Shareable
Constructor and Description |
---|
JsonObject()
Create a new, empty instance
|
JsonObject(Buffer buf)
Create an instance from a buffer.
|
JsonObject(Map<String,Object> map)
Create an instance from a Map.
|
JsonObject(String json)
Create an instance from a string of JSON
|
Modifier and Type | Method and Description |
---|---|
JsonObject |
clear()
Remove all the entries in this JSON object
|
boolean |
containsKey(String key)
Does the JSON object contain the specified key?
|
JsonObject |
copy()
Deep copy of this JSON object.
|
JsonObject |
copy(java.util.function.Function<Object,?> cloner)
Deep copy of this JSON object.
|
String |
encode()
Encode this JSON object as a string.
|
String |
encodePrettily()
Encode this JSON object a a string, with whitespace to make the object easier to read by a human, or other
sentient organism.
|
boolean |
equals(Object o) |
Set<String> |
fieldNames()
Return the set of field names in the JSON objects
|
byte[] |
getBinary(String key)
Get the binary value with the specified key.
|
byte[] |
getBinary(String key,
byte[] def)
Like
getBinary(String) but specifying a default value to return if there is no entry. |
Boolean |
getBoolean(String key)
Get the Boolean value with the specified key
|
Boolean |
getBoolean(String key,
Boolean def)
Like
getBoolean(String) but specifying a default value to return if there is no entry. |
Buffer |
getBuffer(String key)
Get the
Buffer value with the specified key. |
Buffer |
getBuffer(String key,
Buffer def)
Like
getBuffer(String) but specifying a default value to return if there is no entry. |
Double |
getDouble(String key)
Get the Double value with the specified key
|
Double |
getDouble(String key,
Double def)
Like
getDouble(String) but specifying a default value to return if there is no entry. |
Float |
getFloat(String key)
Get the Float value with the specified key
|
Float |
getFloat(String key,
Float def)
Like
getFloat(String) but specifying a default value to return if there is no entry. |
java.time.Instant |
getInstant(String key)
Get the instant value with the specified key.
|
java.time.Instant |
getInstant(String key,
java.time.Instant def)
Like
getInstant(String) but specifying a default value to return if there is no entry. |
Integer |
getInteger(String key)
Get the Integer value with the specified key
|
Integer |
getInteger(String key,
Integer def)
Like
getInteger(String) but specifying a default value to return if there is no entry. |
JsonArray |
getJsonArray(String key)
Get the JsonArray value with the specified key
|
JsonArray |
getJsonArray(String key,
JsonArray def)
Like
getJsonArray(String) but specifying a default value to return if there is no entry. |
JsonObject |
getJsonObject(String key)
Get the JsonObject value with the specified key
|
JsonObject |
getJsonObject(String key,
JsonObject def)
Like
getJsonObject(String) but specifying a default value to return if there is no entry. |
Long |
getLong(String key)
Get the Long value with the specified key
|
Long |
getLong(String key,
Long def)
Like
getLong(String) but specifying a default value to return if there is no entry. |
Map<String,Object> |
getMap()
Get the underlying
Map as is. |
Number |
getNumber(String key)
Get the Number value with the specified key
|
Number |
getNumber(String key,
Number def)
Like
getNumber(String) but specifying a default value to return if there is no entry. |
String |
getString(String key)
Get the string value with the specified key, special cases are addressed for extended JSON types
Instant ,
byte[] and Enum which can be converted to String. |
String |
getString(String key,
String def)
Like
getString(String) but specifying a default value to return if there is no entry. |
Object |
getValue(String key)
Get the value with the specified key, as an Object with types respecting the limitations of JSON.
|
Object |
getValue(String key,
Object def)
Like
getValue(String) but specifying a default value to return if there is no entry. |
int |
hashCode() |
boolean |
isEmpty()
Is this object entry?
|
Iterator<Map.Entry<String,Object>> |
iterator()
Get an Iterator of the entries in the JSON object.
|
static JsonObject |
mapFrom(Object obj)
Create a JsonObject from the fields of a Java object.
|
<T> T |
mapTo(Class<T> type)
Instantiate a Java object from a JsonObject.
|
JsonObject |
mergeIn(JsonObject other)
Merge in another JSON object.
|
JsonObject |
mergeIn(JsonObject other,
boolean deep)
Merge in another JSON object.
|
JsonObject |
mergeIn(JsonObject other,
int depth)
Merge in another JSON object.
|
JsonObject |
put(String key,
Object value)
Put an Object into the JSON object with the specified key.
|
JsonObject |
putNull(String key)
Put a null value into the JSON object with the specified key.
|
int |
readFromBuffer(int pos,
Buffer buffer) |
Object |
remove(String key)
Remove an entry from this object.
|
int |
size()
Get the number of entries in the JSON object
|
java.util.stream.Stream<Map.Entry<String,Object>> |
stream()
Get a Stream over the entries in the JSON object.
|
Buffer |
toBuffer()
Encode this JSON object as buffer.
|
String |
toString() |
void |
writeToBuffer(Buffer buffer) |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
forEach, spliterator
public JsonObject(String json)
json
- the string of JSONpublic JsonObject()
public JsonObject(Map<String,Object> map)
map
- the map to create the instance from.public JsonObject(Buffer buf)
buf
- the buffer to create the instance from.public static JsonObject mapFrom(Object obj)
null when obj
is null
.
obj
- The object to convert to a JsonObject.IllegalArgumentException
- if conversion fails due to an incompatible type.public <T> T mapTo(Class<T> type)
type
- The type to instantiate from the JsonObject.IllegalArgumentException
- if the type cannot be instantiated.public String getString(String key)
Instant
,
byte[]
and Enum
which can be converted to String.key
- the key to return the value forpublic Number getNumber(String key)
key
- the key to return the value forClassCastException
- if the value is not a Numberpublic Integer getInteger(String key)
key
- the key to return the value forClassCastException
- if the value is not an Integerpublic Long getLong(String key)
key
- the key to return the value forClassCastException
- if the value is not a Longpublic Double getDouble(String key)
key
- the key to return the value forClassCastException
- if the value is not a Doublepublic Float getFloat(String key)
key
- the key to return the value forClassCastException
- if the value is not a Floatpublic Boolean getBoolean(String key)
key
- the key to return the value forClassCastException
- if the value is not a Booleanpublic JsonObject getJsonObject(String key)
key
- the key to return the value forClassCastException
- if the value is not a JsonObjectpublic JsonArray getJsonArray(String key)
key
- the key to return the value forClassCastException
- if the value is not a JsonArraypublic byte[] getBinary(String key)
key
- the key to return the value forClassCastException
- if the value is not a StringIllegalArgumentException
- if the String value is not a legal Base64 encoded valuepublic Buffer getBuffer(String key)
Buffer
value with the specified key.
JSON itself has no notion of a binary, this extension complies to the RFC-7493, so this method assumes there is a
String value with the key and it contains a Base64 encoded binary, which it decodes if found and returns.key
- the string to return the value forClassCastException
- if the value is not a stringIllegalArgumentException
- if the value is not a legal Base64 encoded stringpublic java.time.Instant getInstant(String key)
YYYY-MM-DDTHH:mm:ss.sssZ
is the default format used by web browser scripting. This extension complies to
the RFC-7493 with all the restrictions mentioned before. The method will then decode and return a instant value.key
- the key to return the value forClassCastException
- if the value is not a Stringjava.time.format.DateTimeParseException
- if the String value is not a legal ISO 8601 encoded valuepublic Object getValue(String key)
Map
will be wrapped to JsonObject
List
will be wrapped to JsonArray
Instant
will be converted to String
byte[]
will be converted to String
Enum
will be converted to String
key
- the key to lookuppublic String getString(String key, String def)
getString(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Number getNumber(String key, Number def)
getNumber(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Integer getInteger(String key, Integer def)
getInteger(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Long getLong(String key, Long def)
getLong(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Double getDouble(String key, Double def)
getDouble(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Float getFloat(String key, Float def)
getFloat(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Boolean getBoolean(String key, Boolean def)
getBoolean(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic JsonObject getJsonObject(String key, JsonObject def)
getJsonObject(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic JsonArray getJsonArray(String key, JsonArray def)
getJsonArray(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic byte[] getBinary(String key, byte[] def)
getBinary(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Buffer getBuffer(String key, Buffer def)
getBuffer(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic java.time.Instant getInstant(String key, java.time.Instant def)
getInstant(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic Object getValue(String key, Object def)
getValue(String)
but specifying a default value to return if there is no entry.key
- the key to lookupdef
- the default value to use if the entry is not presentdef
if no entry presentpublic boolean containsKey(String key)
key
- the keypublic Set<String> fieldNames()
public JsonObject putNull(String key)
key
- the keypublic JsonObject put(String key, Object value)
key
- the keyvalue
- the valuepublic Object remove(String key)
key
- the keypublic JsonObject mergeIn(JsonObject other)
other
- the other JSON objectpublic JsonObject mergeIn(JsonObject other, boolean deep)
other
- the other JSON objectdeep
- if true, a deep merge is performedpublic JsonObject mergeIn(JsonObject other, int depth)
other
- the other JSON objectdepth
- depth of mergepublic String encode()
public String encodePrettily()
public Buffer toBuffer()
public JsonObject copy()
copy
in interface Shareable
IllegalStateException
- when a nested element cannot be copiedpublic JsonObject copy(java.util.function.Function<Object,?> cloner)
Unlike copy()
that can fail when an unknown element cannot be copied, this method
delegates the copy of such element to the cloner
function and will not fail.
cloner
- a function that copies custom values not supported by the JSON implementationpublic Map<String,Object> getMap()
Map
as is.
This map may contain values that are not the types returned by the JsonObject
and
with an unpredictable representation of the value, e.g you might get a JSON object
as a JsonObject
or as a Map
.public java.util.stream.Stream<Map.Entry<String,Object>> stream()
getValue(String)
, respecting the JSON requirements.
To stream the raw values, use the storage object stream instead:
jsonObject
.getMap()
.stream()
public Iterator<Map.Entry<String,Object>> iterator()
public int size()
public JsonObject clear()
public boolean isEmpty()
public void writeToBuffer(Buffer buffer)
writeToBuffer
in interface io.vertx.core.shareddata.impl.ClusterSerializable
public int readFromBuffer(int pos, Buffer buffer)
readFromBuffer
in interface io.vertx.core.shareddata.impl.ClusterSerializable
Copyright © 2021 Eclipse. All rights reserved.