com.fasterxml.jackson.databind.node

Class JsonNodeFactory

  • All Implemented Interfaces:
    Serializable


    public class JsonNodeFactory
    extends Object
    implements Serializable
    Base class that specifies methods for getting access to Node instances (newly constructed, or shared, depending on type), as well as basic implementation of the methods. Designed to be sub-classed if extended functionality (additions to behavior of node types, mostly) is needed.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static JsonNodeFactory instance
      Default singleton instance that construct "standard" node instances: given that this class is stateless, a globally shared singleton can be used.
    • Constructor Summary

      Constructors 
      Modifier Constructor and Description
      protected JsonNodeFactory()
      Default constructor
        JsonNodeFactory(boolean bigDecimalExact)
      Main constructor
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      ArrayNode arrayNode()
      Factory method for constructing an empty JSON Array node
      BinaryNode binaryNode(byte[] data)
      Factory method for constructing a node that represents given binary data, and will get serialized as equivalent base64-encoded String value
      BinaryNode binaryNode(byte[] data, int offset, int length)
      Factory method for constructing a node that represents given binary data, and will get serialized as equivalent base64-encoded String value
      BooleanNode booleanNode(boolean v)
      Factory method for getting an instance of JSON boolean value (either literal 'true' or 'false')
      NullNode nullNode()
      Factory method for getting an instance of JSON null node (which represents literal null value)
      NumericNode numberNode(BigDecimal v)
      Factory method for getting an instance of JSON numeric value that expresses given unlimited precision floating point value
      NumericNode numberNode(BigInteger v)
      Factory method for getting an instance of JSON numeric value that expresses given unlimited range integer value
      NumericNode numberNode(byte v)
      Factory method for getting an instance of JSON numeric value that expresses given 8-bit value
      ValueNode numberNode(Byte value)
      Alternate factory method that will handle wrapper value, which may be null.
      NumericNode numberNode(double v)
      Factory method for getting an instance of JSON numeric value that expresses given 64-bit floating point value
      ValueNode numberNode(Double value)
      Alternate factory method that will handle wrapper value, which may be null.
      NumericNode numberNode(float v)
      Factory method for getting an instance of JSON numeric value that expresses given 32-bit floating point value
      ValueNode numberNode(Float value)
      Alternate factory method that will handle wrapper value, which may be null.
      NumericNode numberNode(int v)
      Factory method for getting an instance of JSON numeric value that expresses given 32-bit integer value
      ValueNode numberNode(Integer value)
      Alternate factory method that will handle wrapper value, which may be null.
      NumericNode numberNode(long v)
      Factory method for getting an instance of JSON numeric value that expresses given 64-bit integer value
      ValueNode numberNode(Long value)
      Alternate factory method that will handle wrapper value, which may be null.
      NumericNode numberNode(short v)
      Factory method for getting an instance of JSON numeric value that expresses given 16-bit integer value
      ValueNode numberNode(Short value)
      Alternate factory method that will handle wrapper value, which may be null.
      ObjectNode objectNode()
      Factory method for constructing an empty JSON Object ("struct") node
      POJONode POJONode(Object pojo)
      Factory method for constructing a wrapper for POJO ("Plain Old Java Object") objects; these will get serialized using data binding, usually as JSON Objects, but in some cases as JSON Strings or other node types.
      TextNode textNode(String text)
      Factory method for constructing a node that represents JSON String value
      static JsonNodeFactory withExactBigDecimals(boolean bigDecimalExact)
      Return a factory instance with the desired behavior for BigDecimals
    • Field Detail

      • instance

        public static final JsonNodeFactory instance
        Default singleton instance that construct "standard" node instances: given that this class is stateless, a globally shared singleton can be used.
    • Constructor Detail

      • JsonNodeFactory

        public JsonNodeFactory(boolean bigDecimalExact)
        Main constructor

        The only argument to this constructor is a boolean telling whether DecimalNode instances must be built with exact representations of BigDecimal instances.

        This has quite an influence since, for instance, a BigDecimal (and, therefore, a DecimalNode) constructed from input string "1.0" and another constructed with input string "1.00" will not be equal, since their scale differs (1 in the first case, 2 in the second case).

        Note that setting the argument to true does not guarantee a strict inequality between JSON representations: input texts "0.1" and "1e-1", for instance, yield two equivalent BigDecimal instances since they have the same scale (1).

        The no-arg constructor (and the default instance) calls this constructor with false as an argument.

        Parameters:
        bigDecimalExact - see description
        See Also:
        BigDecimal
      • JsonNodeFactory

        protected JsonNodeFactory()
        Default constructor

        This calls JsonNodeFactory(boolean) with false as an argument.

    • Method Detail

      • withExactBigDecimals

        public static JsonNodeFactory withExactBigDecimals(boolean bigDecimalExact)
        Return a factory instance with the desired behavior for BigDecimals

        See JsonNodeFactory(boolean) for a full description.

        Parameters:
        bigDecimalExact - see description
        Returns:
        a factory instance
      • booleanNode

        public BooleanNode booleanNode(boolean v)
        Factory method for getting an instance of JSON boolean value (either literal 'true' or 'false')
      • nullNode

        public NullNode nullNode()
        Factory method for getting an instance of JSON null node (which represents literal null value)
      • numberNode

        public NumericNode numberNode(byte v)
        Factory method for getting an instance of JSON numeric value that expresses given 8-bit value
      • numberNode

        public ValueNode numberNode(Byte value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(short v)
        Factory method for getting an instance of JSON numeric value that expresses given 16-bit integer value
      • numberNode

        public ValueNode numberNode(Short value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(int v)
        Factory method for getting an instance of JSON numeric value that expresses given 32-bit integer value
      • numberNode

        public ValueNode numberNode(Integer value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(long v)
        Factory method for getting an instance of JSON numeric value that expresses given 64-bit integer value
      • numberNode

        public ValueNode numberNode(Long value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(BigInteger v)
        Factory method for getting an instance of JSON numeric value that expresses given unlimited range integer value
      • numberNode

        public NumericNode numberNode(float v)
        Factory method for getting an instance of JSON numeric value that expresses given 32-bit floating point value
      • numberNode

        public ValueNode numberNode(Float value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(double v)
        Factory method for getting an instance of JSON numeric value that expresses given 64-bit floating point value
      • numberNode

        public ValueNode numberNode(Double value)
        Alternate factory method that will handle wrapper value, which may be null. Due to possibility of null, returning type is not guaranteed to be NumericNode, but just ValueNode.
      • numberNode

        public NumericNode numberNode(BigDecimal v)
        Factory method for getting an instance of JSON numeric value that expresses given unlimited precision floating point value

        In the event that the factory has been built to normalize decimal values, the BigDecimal argument will be stripped off its trailing zeroes, using BigDecimal.stripTrailingZeros().

        See Also:
        JsonNodeFactory(boolean)
      • textNode

        public TextNode textNode(String text)
        Factory method for constructing a node that represents JSON String value
      • binaryNode

        public BinaryNode binaryNode(byte[] data)
        Factory method for constructing a node that represents given binary data, and will get serialized as equivalent base64-encoded String value
      • binaryNode

        public BinaryNode binaryNode(byte[] data,
                            int offset,
                            int length)
        Factory method for constructing a node that represents given binary data, and will get serialized as equivalent base64-encoded String value
      • arrayNode

        public ArrayNode arrayNode()
        Factory method for constructing an empty JSON Array node
      • objectNode

        public ObjectNode objectNode()
        Factory method for constructing an empty JSON Object ("struct") node
      • POJONode

        public POJONode POJONode(Object pojo)
        Factory method for constructing a wrapper for POJO ("Plain Old Java Object") objects; these will get serialized using data binding, usually as JSON Objects, but in some cases as JSON Strings or other node types.

Copyright © 2012-2013 FasterXML. All Rights Reserved.