Class JsonObject
- All Implemented Interfaces:
- Serializable,- Iterable<JsonObject.Member>
 Members can be added using the add(String, ...) methods which accept instances of
 JsonValue, strings, primitive numbers, and boolean values. To modify certain values of an
 object, use the set(String, ...) methods. Please note that the add
 methods are faster than set as they do not search for existing members. On the other
 hand, the add methods do not prevent adding multiple members with the same name, as
 duplicate names are discouraged but not prohibited by JSON.
 
 Members can be accessed by their name using get(String). A list of all names can be
 obtained from the method names(). This class also supports iterating over the members in
 document order using an iterator() or an enhanced for loop:
 
 for( Member member : jsonObject ) {
   String name = member.getName();
   JsonValue value = member.getValue();
   ...
 }
 
 Even though JSON objects are unordered by definition, instances of this class preserve the order of members to allow processing in document order and to guarantee a predictable output.
 Note that this class is not thread-safe. If multiple threads access a
 JsonObject instance concurrently, while at least one of these threads modifies the
 contents of this object, access to the instance must be synchronized externally. Failure to do so
 may lead to an inconsistent state.
 
This class is not supposed to be extended by clients.
- Since:
- 2.1
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classRepresents a member of a JSON object, i.e.
- 
Field Summary
- 
Constructor SummaryConstructorsConstructorDescriptionCreates a new empty JsonObject.JsonObject(JsonObject object) Creates a new JsonObject, initialized with the contents of the specified JSON object.
- 
Method SummaryModifier and TypeMethodDescriptionAdds a new member at the end of this object, with the specified name and the JSON representation of the specifiedbooleanvalue.Adds a new member at the end of this object, with the specified name and the JSON representation of the specifieddoublevalue.Adds a new member at the end of this object, with the specified name and the JSON representation of the specifiedfloatvalue.Adds a new member at the end of this object, with the specified name and the JSON representation of the specifiedintvalue.Adds a new member at the end of this object, with the specified name and the JSON representation of the specifiedlongvalue.Adds a new member at the end of this object, with the specified name and the JSON representation of the specified string.Adds a new member at the end of this object, with the specified name and the specified JSON value.asObject()Returns this JSON value asJsonObject, assuming that this value represents a JSON object.booleanIndicates whether some other object is "equal to" this one according to the contract specified inObject.equals(Object).Returns the value of the member with the specified name in this object.inthashCode()booleanisEmpty()Returnstrueif this object contains no members.booleanisObject()Detects whether this value represents a JSON object.iterator()Returns an iterator over the members of this object in document order.names()Returns a list of the names in this object in document order.static JsonObjectReads a JSON object from the given reader.static JsonObjectReads a JSON object from the given string.Removes a member with the specified name from this object.Sets the value of the member with the specified name to the JSON representation of the specifiedbooleanvalue.Sets the value of the member with the specified name to the JSON representation of the specifieddoublevalue.Sets the value of the member with the specified name to the JSON representation of the specifiedfloatvalue.Sets the value of the member with the specified name to the JSON representation of the specifiedintvalue.Sets the value of the member with the specified name to the JSON representation of the specifiedlongvalue.Sets the value of the member with the specified name to the JSON representation of the specified string.Sets the value of the member with the specified name to the specified JSON value.intsize()Returns the number of members (i.e.static JsonObjectunmodifiableObject(JsonObject object) Returns an unmodifiable JsonObject for the specified one.protected voidwrite(org.eclipse.rap.json.JsonWriter writer) Methods inherited from class org.eclipse.rap.json.JsonValueasArray, asBoolean, asDouble, asFloat, asInt, asLong, asString, isArray, isBoolean, isFalse, isNull, isNumber, isString, isTrue, toString, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, writeToMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.IterableforEach, spliterator
- 
Constructor Details- 
JsonObjectpublic JsonObject()Creates a new empty JsonObject.
- 
JsonObjectCreates a new JsonObject, initialized with the contents of the specified JSON object.- Parameters:
- object- the JSON object to get the initial contents from, must not be- null
 
 
- 
- 
Method Details- 
readFromReads a JSON object from the given reader.Characters are read in chunks and buffered internally, therefore wrapping an existing reader in an additional BufferedReaderdoes not improve reading performance.- Parameters:
- reader- the reader to read the JSON object from
- Returns:
- the JSON object that has been read
- Throws:
- IOException- if an I/O error occurs in the reader
- ParseException- if the input is not valid JSON
- UnsupportedOperationException- if the input does not contain a JSON object
 
- 
readFromReads a JSON object from the given string.- Parameters:
- string- the string that contains the JSON object
- Returns:
- the JSON object that has been read
- Throws:
- ParseException- if the input is not valid JSON
- UnsupportedOperationException- if the input does not contain a JSON object
 
- 
unmodifiableObjectReturns an unmodifiable JsonObject for the specified one. This method allows to provide read-only access to a JsonObject.The returned JsonObject is backed by the given object and reflect changes that happen to it. Attempts to modify the returned JsonObject result in an UnsupportedOperationException.- Parameters:
- object- the JsonObject for which an unmodifiable JsonObject is to be returned
- Returns:
- an unmodifiable view of the specified JsonObject
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specifiedintvalue.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specifiedlongvalue.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specifiedfloatvalue.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specifieddoublevalue.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specifiedbooleanvalue.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
 
- 
addAdds a new member at the end of this object, with the specified name and the JSON representation of the specified string.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
 
- 
addAdds a new member at the end of this object, with the specified name and the specified JSON value.This method does not prevent duplicate names. Adding a member with a name that already exists in the object will add another member with the same name. In order to replace existing members, use the method set(name, value)instead. However, add is much faster than set (because it does not need to search for existing members). Therefore add should be preferred when constructing new objects.- Parameters:
- name- the name of the member to add
- value- the value of the member to add, must not be- null
- Returns:
- the object itself, to enable method chaining
 
- 
setSets the value of the member with the specified name to the JSON representation of the specifiedintvalue. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to replace
- value- the value to set to the member
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the JSON representation of the specifiedlongvalue. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to replace
- value- the value to set to the member
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the JSON representation of the specifiedfloatvalue. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the JSON representation of the specifieddoublevalue. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the JSON representation of the specifiedbooleanvalue. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the JSON representation of the specified string. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to add
- value- the value of the member to add
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
setSets the value of the member with the specified name to the specified JSON value. If this object does not contain a member with this name, a new member is added at the end of the object. If this object contains multiple members with this name, only the last one is changed.This method should only be used to modify existing objects. To fill a new object with members, the method add(name, value)should be preferred which is much faster (as it does not need to search for existing members).- Parameters:
- name- the name of the member to add
- value- the value of the member to add, must not be- null
- Returns:
- the object itself, to enable method chaining
- Since:
- 2.2
 
- 
removeRemoves a member with the specified name from this object. If this object contains multiple members with the given name, only the last one is removed. If this object does not contain a member with the specified name, the object is not modified.- Parameters:
- name- the name of the member to remove
- Returns:
- the object itself, to enable method chaining
 
- 
getReturns the value of the member with the specified name in this object. If this object contains multiple members with the given name, this method will return the last one.- Parameters:
- name- the name of the member whose value is to be returned
- Returns:
- the value of the last member with the specified name, or nullif this object does not contain a member with that name
 
- 
sizepublic int size()Returns the number of members (i.e. name/value pairs) in this object.- Returns:
- the number of members in this object
 
- 
isEmptypublic boolean isEmpty()Returnstrueif this object contains no members.- Returns:
- trueif this object contains no members
 
- 
namesReturns a list of the names in this object in document order. The returned list is backed by this object and will reflect subsequent changes. It cannot be used to modify this object. Attempts to modify the returned list will result in an exception.
- 
iteratorReturns an iterator over the members of this object in document order. The returned iterator cannot be used to modify this object.- Specified by:
- iteratorin interface- Iterable<JsonObject.Member>
- Returns:
- an iterator over the members of this object
- Since:
- 2.2
 
- 
write- Specified by:
- writein class- JsonValue
- Throws:
- IOException
 
- 
isObjectpublic boolean isObject()Description copied from class:JsonValueDetects whether this value represents a JSON object. If this is the case, this value is an instance ofJsonObject.
- 
asObjectDescription copied from class:JsonValueReturns this JSON value asJsonObject, assuming that this value represents a JSON object. If this is not the case, an exception is thrown.
- 
hashCodepublic int hashCode()
- 
equalsDescription copied from class:JsonValueIndicates whether some other object is "equal to" this one according to the contract specified inObject.equals(Object).Two JsonValues are considered equal if and only if they represent the same JSON text. As a consequence, two given JsonObjects may be different even though they contain the same set of names with the same values, but in a different order. 
 
-