Class ValueNode

    • Method Detail

      • deepCopy

        public <T extends JsonNode> T deepCopy()
        All current value nodes are immutable, so we can just return them as is.
        Specified by:
        deepCopy in class JsonNode
        Returns:
        Node that is either a copy of this node (and all non-leaf children); or, for immutable leaf nodes, node itself.
      • asToken

        public abstract JsonToken asToken()
        Description copied from class: BaseJsonNode
        Method that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the first JsonToken that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)
        Specified by:
        asToken in interface TreeNode
        Specified by:
        asToken in class BaseJsonNode
        Returns:
        JsonToken that is most closely associated with the node type
      • isEmpty

        public boolean isEmpty()
        Description copied from class: JsonNode
        Convenience method that is functionally same as:
            size() == 0
        
        for all node types.
        Overrides:
        isEmpty in class JsonNode
      • get

        public final JsonNode get​(int index)
        Description copied from class: JsonNode
        Method for accessing value of the specified element of an array node. For other nodes, null is always returned.

        For array nodes, index specifies exact location within array and allows for efficient iteration over child elements (underlying storage is guaranteed to be efficiently indexable, i.e. has random-access to elements). If index is less than 0, or equal-or-greater than node.size(), null is returned; no exception is thrown for any index.

        NOTE: if the element value has been explicitly set as null (which is different from removal!), a NullNode will be returned, not null.

        Specified by:
        get in interface TreeNode
        Specified by:
        get in class JsonNode
        Parameters:
        index - Index of the Array node element to access
        Returns:
        Node that represent value of the specified element, if this node is an array and has specified element. Null otherwise.
      • path

        public final JsonNode path​(int index)
        Description copied from class: JsonNode
        This method is similar to JsonNode.get(int), except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for JsonNode.isMissingNode()) will be returned. This allows for convenient and safe chained access via path calls.
        Specified by:
        path in interface TreeNode
        Specified by:
        path in class JsonNode
        Parameters:
        index - Index of the Array node element to access
        Returns:
        Node that represent value of the specified element, if this node is an array and has specified element; otherwise "missing node" is returned.
      • has

        public final boolean has​(int index)
        Description copied from class: JsonNode
        Method that allows checking whether this node is JSON Array node and contains a value for specified index If this is the case (including case of specified indexing having null as value), returns true; otherwise returns false.

        Note: array element indexes are 0-based.

        This method is equivalent to:

           node.get(index) != null
        

        NOTE: this method will return true for explicitly added null values.

        Overrides:
        has in class JsonNode
        Parameters:
        index - Index to check
        Returns:
        True if this node is a JSON Object node, and has a property entry with specified name (with any value, including null value)
      • hasNonNull

        public final boolean hasNonNull​(int index)
        Description copied from class: JsonNode
        Method that is similar to JsonNode.has(int), but that will return false for explicitly added nulls.

        This method is equivalent to:

           node.get(index) != null && !node.get(index).isNull()
        
        Overrides:
        hasNonNull in class JsonNode
      • get

        public final JsonNode get​(java.lang.String fieldName)
        Description copied from class: JsonNode
        Method for accessing value of the specified field of an object node. If this node is not an object (or it does not have a value for specified field name), or if there is no field with such name, null is returned.

        NOTE: if the property value has been explicitly set as null (which is different from removal!), a NullNode will be returned, not null.

        Specified by:
        get in interface TreeNode
        Overrides:
        get in class JsonNode
        Parameters:
        fieldName - Name of the field (of Object node) to access
        Returns:
        Node that represent value of the specified field, if this node is an object and has value for the specified field. Null otherwise.
      • path

        public final JsonNode path​(java.lang.String fieldName)
        Description copied from class: JsonNode
        This method is similar to JsonNode.get(String), except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for JsonNode.isMissingNode()) will be returned. This allows for convenient and safe chained access via path calls.
        Specified by:
        path in interface TreeNode
        Specified by:
        path in class JsonNode
        Parameters:
        fieldName - Name of the field (of Object node) to access
        Returns:
        Node that represent value of the specified field, if this node is an object and has value for the specified field; otherwise "missing node" is returned.
      • has

        public final boolean has​(java.lang.String fieldName)
        Description copied from class: JsonNode
        Method that allows checking whether this node is JSON Object node and contains value for specified property. If this is the case (including properties with explicit null values), returns true; otherwise returns false.

        This method is equivalent to:

           node.get(fieldName) != null
        
        (since return value of get() is node, not value node contains)

        NOTE: when explicit null values are added, this method will return true for such properties.

        Overrides:
        has in class JsonNode
        Parameters:
        fieldName - Name of element to check
        Returns:
        True if this node is a JSON Object node, and has a property entry with specified name (with any value, including null value)
      • hasNonNull

        public final boolean hasNonNull​(java.lang.String fieldName)
        Description copied from class: JsonNode
        Method that is similar to JsonNode.has(String), but that will return false for explicitly added nulls.

        This method is functionally equivalent to:

           node.get(fieldName) != null && !node.get(fieldName).isNull()
        
        Overrides:
        hasNonNull in class JsonNode
      • findValue

        public final JsonNode findValue​(java.lang.String fieldName)
        Description copied from class: JsonNode
        Method for finding a JSON Object field with specified name in this node or its child nodes, and returning value it has. If no matching field is found in this node or its descendants, returns null.
        Specified by:
        findValue in class JsonNode
        Parameters:
        fieldName - Name of field to look for
        Returns:
        Value of first matching node found, if any; null if none
      • findParent

        public final ObjectNode findParent​(java.lang.String fieldName)
        Description copied from class: JsonNode
        Method for finding a JSON Object that contains specified field, within this node or its descendants. If no matching field is found in this node or its descendants, returns null.
        Specified by:
        findParent in class JsonNode
        Parameters:
        fieldName - Name of field to look for
        Returns:
        Value of first matching node found, if any; null if none
      • findValues

        public final java.util.List<JsonNode> findValues​(java.lang.String fieldName,
                                                         java.util.List<JsonNode> foundSoFar)
        Specified by:
        findValues in class JsonNode
      • findValuesAsText

        public final java.util.List<java.lang.String> findValuesAsText​(java.lang.String fieldName,
                                                                       java.util.List<java.lang.String> foundSoFar)
        Specified by:
        findValuesAsText in class JsonNode
      • findParents

        public final java.util.List<JsonNode> findParents​(java.lang.String fieldName,
                                                          java.util.List<JsonNode> foundSoFar)
        Specified by:
        findParents in class JsonNode