Class JsonObject


  • public final class JsonObject
    extends JsonElement
    A class representing an object type in Json. An object consists of name-value pairs where names are strings, and values are any other type of JsonElement. This allows for a creating a tree of JsonElements. The member elements of this object are maintained in order they were added. This class does not support null values. If null is provided as value argument to any of the methods, it is converted to a JsonNull.

    JsonObject does not implement the Map interface, but a Map view of it can be obtained with asMap().

    Author:
    Inderjeet Singh, Joel Leitch
    • Constructor Detail

      • JsonObject

        public JsonObject()
        Creates an empty JsonObject.
    • Method Detail

      • deepCopy

        public JsonObject deepCopy()
        Creates a deep copy of this element and all its children.
        Specified by:
        deepCopy in class JsonElement
        Since:
        2.8.2
      • add

        public void add​(String property,
                        JsonElement value)
        Adds a member, which is a name-value pair, to self. The name must be a String, but the value can be an arbitrary JsonElement, thereby allowing you to build a full tree of JsonElements rooted at this node.
        Parameters:
        property - name of the member.
        value - the member object.
      • remove

        public JsonElement remove​(String property)
        Removes the property from this object.
        Parameters:
        property - name of the member that should be removed.
        Returns:
        the JsonElement object that is being removed, or null if no member with this name exists.
        Since:
        1.3
      • addProperty

        public void addProperty​(String property,
                                String value)
        Convenience method to add a string member. The specified value is converted to a JsonPrimitive of String.
        Parameters:
        property - name of the member.
        value - the string value associated with the member.
      • addProperty

        public void addProperty​(String property,
                                Number value)
        Convenience method to add a number member. The specified value is converted to a JsonPrimitive of Number.
        Parameters:
        property - name of the member.
        value - the number value associated with the member.
      • addProperty

        public void addProperty​(String property,
                                Boolean value)
        Convenience method to add a boolean member. The specified value is converted to a JsonPrimitive of Boolean.
        Parameters:
        property - name of the member.
        value - the boolean value associated with the member.
      • addProperty

        public void addProperty​(String property,
                                Character value)
        Convenience method to add a char member. The specified value is converted to a JsonPrimitive of Character.
        Parameters:
        property - name of the member.
        value - the char value associated with the member.
      • entrySet

        public Set<Map.Entry<String,​JsonElement>> entrySet()
        Returns a set of members of this object. The set is ordered, and the order is in which the elements were added.
        Returns:
        a set of members of this object.
      • keySet

        public Set<String> keySet()
        Returns a set of members key values.
        Returns:
        a set of member keys as Strings
        Since:
        2.8.1
      • size

        public int size()
        Returns the number of key/value pairs in the object.
        Returns:
        the number of key/value pairs in the object.
        Since:
        2.7
      • isEmpty

        public boolean isEmpty()
        Returns true if the number of key/value pairs in the object is zero.
        Returns:
        true if the number of key/value pairs in the object is zero.
        Since:
        2.10.1
      • has

        public boolean has​(String memberName)
        Convenience method to check if a member with the specified name is present in this object.
        Parameters:
        memberName - name of the member that is being checked for presence.
        Returns:
        true if there is a member with the specified name, false otherwise.
      • get

        public JsonElement get​(String memberName)
        Returns the member with the specified name.
        Parameters:
        memberName - name of the member that is being requested.
        Returns:
        the member matching the name, or null if no such member exists.
      • getAsJsonPrimitive

        public JsonPrimitive getAsJsonPrimitive​(String memberName)
        Convenience method to get the specified member as a JsonPrimitive.
        Parameters:
        memberName - name of the member being requested.
        Returns:
        the JsonPrimitive corresponding to the specified member, or null if no member with this name exists.
        Throws:
        ClassCastException - if the member is not of type JsonPrimitive.
      • getAsJsonArray

        public JsonArray getAsJsonArray​(String memberName)
        Convenience method to get the specified member as a JsonArray.
        Parameters:
        memberName - name of the member being requested.
        Returns:
        the JsonArray corresponding to the specified member, or null if no member with this name exists.
        Throws:
        ClassCastException - if the member is not of type JsonArray.
      • getAsJsonObject

        public JsonObject getAsJsonObject​(String memberName)
        Convenience method to get the specified member as a JsonObject.
        Parameters:
        memberName - name of the member being requested.
        Returns:
        the JsonObject corresponding to the specified member, or null if no member with this name exists.
        Throws:
        ClassCastException - if the member is not of type JsonObject.
      • asMap

        public Map<String,​JsonElement> asMap()
        Returns a mutable Map view of this JsonObject. Changes to the Map are visible in this JsonObject and the other way around.

        The Map does not permit null keys or values. Unlike JsonObject's null handling, a NullPointerException is thrown when trying to add null. Use JsonNull for JSON null values.

        Returns:
        mutable Map view
        Since:
        2.10
      • equals

        public boolean equals​(Object o)
        Returns whether the other object is equal to this. This method only considers the other object to be equal if it is an instance of JsonObject and has equal members, ignoring order.
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Returns the hash code of this object. This method calculates the hash code based on the members of this object, ignoring order.
        Overrides:
        hashCode in class Object