Eclipse Remote Application Platform

org.eclipse.rap.json
Class JsonObject

java.lang.Object
  extended by org.eclipse.rap.json.JsonValue
      extended by org.eclipse.rap.json.JsonObject
All Implemented Interfaces:
java.io.Serializable

public class JsonObject
extends JsonValue

Represents a JSON object. A JSON object contains a sequence of members, which are pairs of a name and a JSON value (see JsonValue). Although JSON objects should be used for unordered collections, this class stores members in document order.

Members can be added using one of the different add(...) methods. Accepted values are either instances of JsonValue, or strings, primitive numbers, or boolean values.

Members can be accessed by their name using get(String). A list of all names can be obtained from the method names().

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:
Serialized Form

Field Summary
 
Fields inherited from class org.eclipse.rap.json.JsonValue
FALSE, NULL, TRUE
 
Constructor Summary
JsonObject()
          Creates a new empty JsonObject.
JsonObject(JsonObject object)
          Creates a new JsonObject, initialized with the contents of the specified JSON object.
 
Method Summary
 JsonObject add(java.lang.String name, boolean value)
          Adds a new member to this object, with the specified name and the JSON representation of the specified boolean value.
 JsonObject add(java.lang.String name, double value)
          Adds a new member to this object, with the specified name and the JSON representation of the specified double value.
 JsonObject add(java.lang.String name, float value)
          Adds a new member to this object, with the specified name and the JSON representation of the specified float value.
 JsonObject add(java.lang.String name, JsonValue value)
          Adds a new member to this object, with the specified name and JSON value.
 JsonObject add(java.lang.String name, long value)
          Adds a new member to this object, with the specified name and the JSON representation of the specified long value.
 JsonObject add(java.lang.String name, java.lang.String value)
          Adds a new member to this object, with the specified name and the JSON representation of the specified string.
 JsonObject asObject()
          Returns this JSON value as JsonObject, assuming that this value represents a JSON object.
 boolean equals(java.lang.Object obj)
          Indicates whether some other object is "equal to" this one according to the contract specified in Object.equals(Object).
 JsonValue get(java.lang.String name)
          Returns the value of the member with the specified name in this object.
 int hashCode()
           
 boolean isEmpty()
          Returns true if this object contains no members.
 boolean isObject()
          Detects whether this value represents a JSON object.
 java.util.List<java.lang.String> names()
          Returns a list of the names in this object in document order.
static JsonObject readFrom(java.io.Reader reader)
          Reads a JSON object from the given reader.
static JsonObject readFrom(java.lang.String string)
          Reads a JSON object from the given string.
 JsonObject remove(java.lang.String name)
          Removes a member with the specified name from this object.
 int size()
          Returns the number of members (i.e.
static JsonObject unmodifiableObject(JsonObject object)
          Returns an unmodifiable JsonObject for the specified one.
protected  void write(org.eclipse.rap.json.JsonWriter writer)
           
 
Methods inherited from class org.eclipse.rap.json.JsonValue
asArray, asBoolean, asDouble, asFloat, asInt, asLong, asString, isArray, isBoolean, isFalse, isNull, isNumber, isString, isTrue, toString, valueOf, valueOf, valueOf, valueOf, valueOf, writeTo
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JsonObject

public JsonObject()
Creates a new empty JsonObject.


JsonObject

public JsonObject(JsonObject object)
Creates 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 Detail

readFrom

public static JsonObject readFrom(java.io.Reader reader)
                           throws java.io.IOException
Reads a JSON object from the given reader.

Parameters:
reader - the reader to read the JSON object from
Returns:
the JSON object that has been read
Throws:
java.io.IOException - if an I/O error occurs in the reader
ParseException - if the input is not valid JSON
java.lang.UnsupportedOperationException - if the input does not contain a JSON object

readFrom

public static JsonObject readFrom(java.lang.String string)
Reads 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
java.lang.UnsupportedOperationException - if the input does not contain a JSON object

unmodifiableObject

public static JsonObject unmodifiableObject(JsonObject object)
Returns 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

add

public JsonObject add(java.lang.String name,
                      long value)
Adds a new member to this object, with the specified name and the JSON representation of the specified long value.

This method does not prevent duplicate names. Adding a member with a name that is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

add

public JsonObject add(java.lang.String name,
                      float value)
Adds a new member to this object, with the specified name and the JSON representation of the specified float value.

This method does not prevent duplicate names. Adding a member with a name that is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

add

public JsonObject add(java.lang.String name,
                      double value)
Adds a new member to this object, with the specified name and the JSON representation of the specified double value.

This method does not prevent duplicate names. Adding a member with a name that is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

add

public JsonObject add(java.lang.String name,
                      boolean value)
Adds a new member to this object, with the specified name and the JSON representation of the specified boolean value.

This method does not prevent duplicate names. Adding a member with a name that is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

add

public JsonObject add(java.lang.String name,
                      java.lang.String value)
Adds a new member to 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 is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

add

public JsonObject add(java.lang.String name,
                      JsonValue value)
Adds a new member to this object, with the specified name and JSON value.

This method does not prevent duplicate names. Adding a member with a name that is already contained in the object will add another member with the same name. In order to ensure that the names are unique, the method remove( String ) can be called before calling this method. However, this practice incurs a performance penalty and should only be used when the calling code can not ensure that same name won't be added more than once.

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

remove

public JsonObject remove(java.lang.String name)
Removes a member with the specified name from this object. If this object contains multiple members with the given name, only the first 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

get

public JsonValue get(java.lang.String name)
Returns the value of the member with the specified name in this object.

Parameters:
name - the name of the member whose value is to be returned
Returns:
the value of the member with the specified name, or null if there is no member with that name in this object

size

public int size()
Returns the number of members (i.e. name/value pairs) in this object.

Returns:
the number of members in this object

isEmpty

public boolean isEmpty()
Returns true if this object contains no members.

Returns:
true if this object contains no members

names

public java.util.List<java.lang.String> names()
Returns 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.


write

protected void write(org.eclipse.rap.json.JsonWriter writer)
              throws java.io.IOException
Specified by:
write in class JsonValue
Throws:
java.io.IOException

isObject

public boolean isObject()
Description copied from class: JsonValue
Detects whether this value represents a JSON object. If this is the case, this value is an instance of JsonObject.

Overrides:
isObject in class JsonValue
Returns:
true if this value is an instance of JsonObject

asObject

public JsonObject asObject()
Description copied from class: JsonValue
Returns this JSON value as JsonObject, assuming that this value represents a JSON object. If this is not the case, an exception is thrown.

Overrides:
asObject in class JsonValue
Returns:
a JSONObject for this value

hashCode

public int hashCode()
Overrides:
hashCode in class JsonValue

equals

public boolean equals(java.lang.Object obj)
Description copied from class: JsonValue
Indicates whether some other object is "equal to" this one according to the contract specified in Object.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.

Overrides:
equals in class JsonValue
Parameters:
obj - the reference object with which to compare
Returns:
true if this object is the same as the object argument; false otherwise

Eclipse Remote Application Platform

Copyright (c) EclipseSource and others 2002, 2013. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0