com.fasterxml.jackson.databind.cfg

## Enum JsonNodeFeature

- java.lang.Object
- - java.lang.Enum<JsonNodeFeature>
  - - com.fasterxml.jackson.databind.cfg.JsonNodeFeature

All Implemented Interfaces:
  com.fasterxml.jackson.core.util.JacksonFeature, DatatypeFeature, Serializable, Comparable<JsonNodeFeature>

    public enum JsonNodeFeature
    extends Enum<JsonNodeFeature>
    implements DatatypeFeature

New Datatype-specific configuration options related to handling of `JsonNode` types.

Since:
  2.14

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`FAIL_ON_NAN_TO_BIG_DECIMAL_COERCION` Determines the behavior when coercing `NaN` to `BigDecimal` with `DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS` enabled. 1.
`READ_NULL_PROPERTIES` When reading `JsonNode`s are null valued properties included as explicit `NullNode`s in resulting `ObjectNode` or skipped?
`STRIP_TRAILING_BIGDECIMAL_ZEROES` Feature that determines whether `BigDecimal` values will be "normalized" by stripping trailing zeroes off, when constructing nodes with `JsonNodeFactory.numberNode(java.math.BigDecimal)`.
`USE_BIG_DECIMAL_FOR_FLOATS` Determines whether floating-point numbers should be deserialized into `BigDecimal` when reading `JsonNode`s.
`WRITE_NULL_PROPERTIES` When writing `JsonNode`s are null valued properties written as explicit JSON `null`s or skipped?
`WRITE_PROPERTIES_SORTED` When writing `com.fasterxml.jackson.databind.JsonNode`s are Object properties (for `ObjectNode`s) sorted alphabetically (using natural order of `String`) or not?

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `enabledByDefault()`
`boolean` `enabledIn(int flags)`
`int` `featureIndex()` Internal index used for efficient storage and index; no user serviceable contents inside!
`int` `getMask()`
`static JsonNodeFeature` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static JsonNodeFeature[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### READ_NULL_PROPERTIES

    public static final JsonNodeFeature READ_NULL_PROPERTIES

When reading `JsonNode`s are null valued properties included as explicit `NullNode`s in resulting `ObjectNode` or skipped?

Default value: `true`

#### WRITE_NULL_PROPERTIES

    public static final JsonNodeFeature WRITE_NULL_PROPERTIES

When writing `JsonNode`s are null valued properties written as explicit JSON `null`s or skipped?

Default value: `true`

#### WRITE_PROPERTIES_SORTED

    public static final JsonNodeFeature WRITE_PROPERTIES_SORTED

When writing `com.fasterxml.jackson.databind.JsonNode`s are Object properties (for `ObjectNode`s) sorted alphabetically (using natural order of `String`) or not? If not sorted, order is the insertion order; when reading this also means retaining order from the input document.

Default value: `false`

Since:
  2.16

#### STRIP_TRAILING_BIGDECIMAL_ZEROES

    public static final JsonNodeFeature STRIP_TRAILING_BIGDECIMAL_ZEROES

Feature that determines whether `BigDecimal` values will be "normalized" by stripping trailing zeroes off, when constructing nodes with `JsonNodeFactory.numberNode(java.math.BigDecimal)`. If enabled, `BigDecimal.stripTrailingZeros()` will be called prior to node creation; if disabled, numeric value will be used as is.

Default value: `true` (for backwards-compatibility).

Since:
  2.15

#### FAIL_ON_NAN_TO_BIG_DECIMAL_COERCION

    public static final JsonNodeFeature FAIL_ON_NAN_TO_BIG_DECIMAL_COERCION

Determines the behavior when coercing `NaN` to `BigDecimal` with `DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS` enabled. 1. If set to `true`, will throw an `InvalidFormatException` for attempting to coerce `NaN` into `BigDecimal`. 2. If set to `false`, will simply let coercing `NaN` into `BigDecimal` happen, regardless of how such coercion will behave --as of 2.16, will simply stay as `NaN` of original floating-point type node.

Default value is `false` for backwards-compatibility, but will most likely be changed to `true` in 3.0.

Since:
  2.16

#### USE_BIG_DECIMAL_FOR_FLOATS

    public static final JsonNodeFeature USE_BIG_DECIMAL_FOR_FLOATS

Determines whether floating-point numbers should be deserialized into `BigDecimal` when reading `JsonNode`s. This feature provides more precise control over number deserialization for `JsonNode` and takes precedence over `DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS` if explicitly set.

Behavior follows these rules:

- If explicitly enabled, floating-point numbers will be read as `BigDecimal`.
- If explicitly disabled, floating-point numbers will be read as `Double`.
- If left undefined (default), the behavior follows `DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS`.

Default value is `false` but unless explicitly set, handling depends on more general `DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS`).

Since:
  2.19

### Method Detail

#### values

    public static JsonNodeFeature[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (JsonNodeFeature c : JsonNodeFeature.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static JsonNodeFeature valueOf(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null

#### enabledByDefault

    public boolean enabledByDefault()

Specified by:
  `enabledByDefault` in interface `com.fasterxml.jackson.core.util.JacksonFeature`

#### enabledIn

    public boolean enabledIn(int flags)

Specified by:
  `enabledIn` in interface `com.fasterxml.jackson.core.util.JacksonFeature`

#### getMask

    public int getMask()

Specified by:
  `getMask` in interface `com.fasterxml.jackson.core.util.JacksonFeature`

#### featureIndex

    public int featureIndex()

Description copied from interface: `DatatypeFeature`
Internal index used for efficient storage and index; no user serviceable contents inside!

Specified by:
  `featureIndex` in interface `DatatypeFeature`