Class StringNode

All Implemented Interfaces:
Serializable, Iterable<JsonNode>, tools.jackson.core.TreeNode, JacksonSerializable

public class StringNode extends ValueNode
Value node that contains a String value.
See Also:
  • Field Details

    • _value

      protected final String _value
  • Constructor Details

    • StringNode

      public StringNode(String v)
  • Method Details

    • valueOf

      public static StringNode valueOf(String v)
      Factory method that should be used to construct instances. For some common cases, can reuse canonical instances: currently this is the case for empty Strings, in future possible for others as well. If null is passed, will return null.
      Returns:
      Resulting StringNode object, if v is NOT null; null if it is.
    • getNodeType

      public JsonNodeType getNodeType()
      Description copied from class: JsonNode
      Return the type of this node
      Specified by:
      getNodeType in class JsonNode
      Returns:
      the node type as a JsonNodeType enum value
    • asToken

      public tools.jackson.core.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 tools.jackson.core.TreeNode
      Specified by:
      asToken in class ValueNode
    • _valueDesc

      protected String _valueDesc()
      Description copied from class: BaseJsonNode
      Method for implementation classes to return a short description of contained value, to be used in error messages.
      Specified by:
      _valueDesc in class BaseJsonNode
    • deepCopy

      public StringNode deepCopy()
      Description copied from class: ValueNode
      All current value nodes are immutable, so we can just return them as is.
      Overrides:
      deepCopy in class ValueNode
      Returns:
      Node that is either a copy of this node (and all non-leaf children); or, for immutable leaf nodes, node itself.
    • stringValue

      public String stringValue()
      Description copied from class: JsonNode
      Method that will try to access value of this node as a Java String which works if (and only if) node contains JSON String value: if not, a JsonNodeException will be thrown.

      NOTE: for more lenient conversions, use JsonNode.asString()

      NOTE: in Jackson 2.x, was textValue().

      Overrides:
      stringValue in class BaseJsonNode
      Returns:
      String value this node represents (if JSON String)
    • stringValue

      public String stringValue(String defaultValue)
      Description copied from class: JsonNode
      Method similar to JsonNode.stringValue(), but that will return specified defaultValue if this node does not contain a JSON String.
      Overrides:
      stringValue in class BaseJsonNode
      Parameters:
      defaultValue - Value to return if this node does not contain a JSON String.
      Returns:
      Java String value this node represents (if JSON String); defaultValue otherwise
    • stringValueOpt

      public Optional<String> stringValueOpt()
      Description copied from class: JsonNode
      Method similar to JsonNode.stringValue(), but that will return Optional.empty() if this node does not contain a JSON String.
      Overrides:
      stringValueOpt in class BaseJsonNode
      Returns:
      Optional<String> value (if node represents JSON String); Optional.empty() otherwise
    • getBinaryValue

      public byte[] getBinaryValue(tools.jackson.core.Base64Variant b64variant) throws tools.jackson.core.JacksonException
      Method for accessing content String assuming they were base64 encoded; if so, content is decoded and resulting binary data is returned.
      Throws:
      tools.jackson.core.JacksonException - if String contents are not valid Base64 encoded content
    • binaryValue

      public byte[] binaryValue() throws tools.jackson.core.JacksonException
      Description copied from class: JsonNode
      Method that will try to access value of this node as binary value (Java byte[]) which works if (and only if) node contains binary value (for JSON, Base64-encoded String, for other formats native binary value): if not, a JsonNodeException will be thrown. To check if this method can be used, you may call JsonNode.isBinary().

      Overrides:
      binaryValue in class BaseJsonNode
      Returns:
      Binary value this node represents (if node contains binary value)
      Throws:
      JsonNodeException - if node does not contain a Binary value (a
      tools.jackson.core.JacksonException
    • asString

      public String asString()
      Description copied from class: JsonNode
      Method that will return a valid String representation of the contained value, if the node is a value node (method JsonNode.isValueNode() returns true), otherwise empty String.

      NOTE: this is NOT same as JsonNode.toString() in that result is

      NOT VALID ENCODED JSON

      for all nodes (but is for some, like NumberNodes and BooleanNodes).
      Specified by:
      asString in class JsonNode
    • asString

      public String asString(String defaultValue)
      Description copied from class: JsonNode
      Returns the text value of this node or the provided defaultValue if this node does not have a text value. Useful for nodes that are MissingNode or NullNode, ensuring a default value is returned instead of null or missing indicators.
      Overrides:
      asString in class BaseJsonNode
      Parameters:
      defaultValue - The default value to return if this node's text value is absent.
      Returns:
      The text value of this node, or defaultValue if the text value is absent.
    • asBoolean

      public boolean asBoolean(boolean defaultValue)
      Description copied from class: JsonNode
      Method that will try to convert value of this node to a Java boolean. JSON booleans map naturally; integer numbers other than 0 map to true, and 0 maps to false and Strings 'true' and 'false' map to corresponding values.

      If representation cannot be converted to a boolean value (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
      asBoolean in class BaseJsonNode
    • asInt

      public int asInt(int defaultValue)
      Description copied from class: JsonNode
      Method that will try to convert value of this node to a Java int. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.

      If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
      asInt in class BaseJsonNode
    • asLong

      public long asLong(long defaultValue)
      Description copied from class: JsonNode
      Method that will try to convert value of this node to a Java long. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.

      If representation cannot be converted to a long (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
      asLong in class BaseJsonNode
    • asDouble

      public double asDouble(double defaultValue)
      Description copied from class: JsonNode
      Method that will try to convert value of this node to a Java double. Numbers are coerced using default Java rules; booleans convert to 0.0 (false) and 1.0 (true), and Strings are parsed using default Java language integer parsing rules.

      If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
      asDouble in class BaseJsonNode
    • serialize

      public final void serialize(tools.jackson.core.JsonGenerator g, SerializationContext provider) throws tools.jackson.core.JacksonException
      Description copied from class: BaseJsonNode
      Method called to serialize node instances using given generator.
      Specified by:
      serialize in interface JacksonSerializable
      Specified by:
      serialize in class BaseJsonNode
      Throws:
      tools.jackson.core.JacksonException
    • equals

      public boolean equals(Object o)
      Description copied from class: JsonNode
      Equality for node objects is defined as full (deep) value equality. This means that it is possible to compare complete JSON trees for equality by comparing equality of root nodes.

      Note: marked as abstract to ensure all implementation classes define it properly and not rely on definition from Object.

      Specified by:
      equals in class JsonNode
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class BaseJsonNode