com.fasterxml.jackson.core.json

## Enum JsonReadFeature

- java.lang.Object
- - java.lang.Enum<JsonReadFeature>
  - - com.fasterxml.jackson.core.json.JsonReadFeature

All Implemented Interfaces:
  FormatFeature, JacksonFeature, Serializable, Comparable<JsonReadFeature>

    public enum JsonReadFeature
    extends Enum<JsonReadFeature>
    implements FormatFeature

Token reader (parser) features specific to JSON backend. Eventual replacement for JSON-specific `JsonParser.Feature`s.

Since:
  2.10

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER` Feature that can be enabled to accept quoting of all character using backslash quoting mechanism: if not enabled, only characters that are explicitly listed by JSON specification can be thus escaped (see JSON spec for small list of these characters)
`ALLOW_JAVA_COMMENTS` Feature that determines whether parser will allow use of Java/C/C++ style comments (both '/'+'*' and '//' varieties) within parsed content or not.
`ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS` Feature that determines whether parser will allow JSON decimal numbers to start with a decimal point (like: .123).
`ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS` Feature that determines whether parser will allow JSON decimal numbers to start with a plus sign (like: +123).
`ALLOW_LEADING_ZEROS_FOR_NUMBERS` Feature that determines whether parser will allow JSON integral numbers to start with additional (ignorable) zeroes (like: 000001).
`ALLOW_MISSING_VALUES` Feature allows the support for "missing" values in a JSON array: missing value meaning sequence of two commas, without value in-between but only optional white space.
`ALLOW_NON_NUMERIC_NUMBERS` Feature that allows parser to recognize set of "Not-a-Number" (NaN) tokens as legal floating number values (similar to how many other data formats and programming language source code allows it).
`ALLOW_SINGLE_QUOTES` Feature that determines whether parser will allow use of single quotes (apostrophe, character '\'') for quoting Strings (names and String values).
`ALLOW_TRAILING_COMMA` Feature that determines whether `JsonParser` will allow for a single trailing comma following the final value (in an Array) or member (in an Object).
`ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS` Feature that determines whether parser will allow JSON decimal numbers to end with a decimal point (like: 123.).
`ALLOW_UNESCAPED_CONTROL_CHARS` Feature that determines whether parser will allow JSON Strings to contain unescaped control characters (ASCII characters with value less than 32, including tab and line feed characters) or not.
`ALLOW_UNQUOTED_FIELD_NAMES` Feature that determines whether parser will allow use of unquoted field names (which is allowed by Javascript, but not by JSON specification).
`ALLOW_YAML_COMMENTS` Feature that determines whether parser will allow use of YAML comments, ones starting with '#' and continuing until the end of the line.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static int` `collectDefaults()` Method that calculates bit set (flags) of all features that are enabled by default.
`boolean` `enabledByDefault()` Accessor for checking whether this feature is enabled by default.
`boolean` `enabledIn(int flags)` Convenience method for checking whether feature is enabled in given bitmask
`int` `getMask()` Returns bit mask for this feature instance; must be a single bit, that is of form `(1 << N)`
`JsonParser.Feature` `mappedFeature()`
`static JsonReadFeature` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static JsonReadFeature[]` `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

#### ALLOW_JAVA_COMMENTS

    public static final JsonReadFeature ALLOW_JAVA_COMMENTS

Feature that determines whether parser will allow use of Java/C/C++ style comments (both '/'+'*' and '//' varieties) within parsed content or not.

Since JSON specification does not mention comments as legal construct, this is a non-standard feature; however, in the wild this is extensively used. As such, feature is disabled by default for parsers and must be explicitly enabled.

#### ALLOW_YAML_COMMENTS

    public static final JsonReadFeature ALLOW_YAML_COMMENTS

Feature that determines whether parser will allow use of YAML comments, ones starting with '#' and continuing until the end of the line. This commenting style is common with scripting languages as well.

Since JSON specification does not mention comments as legal construct, this is a non-standard feature. As such, feature is disabled by default for parsers and must be explicitly enabled.

#### ALLOW_SINGLE_QUOTES

    public static final JsonReadFeature ALLOW_SINGLE_QUOTES

Feature that determines whether parser will allow use of single quotes (apostrophe, character '\'') for quoting Strings (names and String values). If so, this is in addition to other acceptable markers.

Since JSON specification requires use of double quotes for field names, this is a non-standard feature, and as such disabled by default.

#### ALLOW_UNQUOTED_FIELD_NAMES

    public static final JsonReadFeature ALLOW_UNQUOTED_FIELD_NAMES

Feature that determines whether parser will allow use of unquoted field names (which is allowed by Javascript, but not by JSON specification).

Since JSON specification requires use of double quotes for field names, this is a non-standard feature, and as such disabled by default.

#### ALLOW_UNESCAPED_CONTROL_CHARS

    public static final JsonReadFeature ALLOW_UNESCAPED_CONTROL_CHARS

Feature that determines whether parser will allow JSON Strings to contain unescaped control characters (ASCII characters with value less than 32, including tab and line feed characters) or not. If feature is set false, an exception is thrown if such a character is encountered.

Since JSON specification requires quoting for all control characters, this is a non-standard feature, and as such disabled by default.

#### ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER

    public static final JsonReadFeature ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER

Feature that can be enabled to accept quoting of all character using backslash quoting mechanism: if not enabled, only characters that are explicitly listed by JSON specification can be thus escaped (see JSON spec for small list of these characters)

Since JSON specification requires quoting for all control characters, this is a non-standard feature, and as such disabled by default.

#### ALLOW_LEADING_ZEROS_FOR_NUMBERS

    public static final JsonReadFeature ALLOW_LEADING_ZEROS_FOR_NUMBERS

Feature that determines whether parser will allow JSON integral numbers to start with additional (ignorable) zeroes (like: 000001). If enabled, no exception is thrown, and extra nulls are silently ignored (and not included in textual representation exposed via `JsonParser.getText()`).

Since JSON specification does not allow leading zeroes, this is a non-standard feature, and as such disabled by default.

#### ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS

    public static final JsonReadFeature ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS

Feature that determines whether parser will allow JSON decimal numbers to start with a plus sign (like: +123). If enabled, no exception is thrown, and the number is parsed as though a leading sign had not been present.

Since JSON specification does not allow leading plus signs, this is a non-standard feature, and as such disabled by default.

Since:
  2.14

#### ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS

    public static final JsonReadFeature ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS

Feature that determines whether parser will allow JSON decimal numbers to start with a decimal point (like: .123). If enabled, no exception is thrown, and the number is parsed as though a leading 0 had been present.

Since JSON specification does not allow leading decimal points, this is a non-standard feature, and as such disabled by default.

Since:
  2.11

#### ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS

    public static final JsonReadFeature ALLOW_TRAILING_DECIMAL_POINT_FOR_NUMBERS

Feature that determines whether parser will allow JSON decimal numbers to end with a decimal point (like: 123.). If enabled, no exception is thrown, and the number is parsed as though the trailing decimal point had not been present.

Since JSON specification does not allow trailing decimal points, this is a non-standard feature, and as such disabled by default.

Since:
  2.14

#### ALLOW_NON_NUMERIC_NUMBERS

    public static final JsonReadFeature ALLOW_NON_NUMERIC_NUMBERS

Feature that allows parser to recognize set of "Not-a-Number" (NaN) tokens as legal floating number values (similar to how many other data formats and programming language source code allows it). Specific subset contains values that XML Schema (see section 3.2.4.1, Lexical Representation) allows (tokens are quoted contents, not including quotes):

- "INF" (for positive infinity), as well as alias of "Infinity"
- "-INF" (for negative infinity), alias "-Infinity"
- "NaN" (for other not-a-numbers, like result of division by zero)

Since JSON specification does not allow use of such values, this is a non-standard feature, and as such disabled by default.

#### ALLOW_MISSING_VALUES

    public static final JsonReadFeature ALLOW_MISSING_VALUES

Feature allows the support for "missing" values in a JSON array: missing value meaning sequence of two commas, without value in-between but only optional white space. Enabling this feature will expose "missing" values as `JsonToken.VALUE_NULL` tokens, which typically become Java nulls in arrays and `Collection` in data-binding.

For example, enabling this feature will represent a JSON array `["value1",,"value3",]` as `["value1", null, "value3", null]`

Since the JSON specification does not allow missing values this is a non-compliant JSON feature and is disabled by default.

#### ALLOW_TRAILING_COMMA

    public static final JsonReadFeature ALLOW_TRAILING_COMMA

Feature that determines whether `JsonParser` will allow for a single trailing comma following the final value (in an Array) or member (in an Object). These commas will simply be ignored.

For example, when this feature is enabled, `[true,true,]` is equivalent to `[true, true]` and `{"a": true,}` is equivalent to `{"a": true}`.

When combined with `ALLOW_MISSING_VALUES`, this feature takes priority, and the final trailing comma in an array declaration does not imply a missing (`null`) value. For example, when both `ALLOW_MISSING_VALUES` and `ALLOW_TRAILING_COMMA` are enabled, `[true,true,]` is equivalent to `[true, true]`, and `[true,true,,]` is equivalent to `[true, true, null]`.

Since the JSON specification does not permit trailing commas, this is a non-standard feature, and as such disabled by default.

### Method Detail

#### values

    public static JsonReadFeature[] 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 (JsonReadFeature c : JsonReadFeature.values())
        System.out.println(c);

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

#### valueOf

    public static JsonReadFeature 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

#### collectDefaults

    public static int collectDefaults()

Method that calculates bit set (flags) of all features that are enabled by default.

Returns:
  Bit mask of all features that are enabled by default

#### enabledByDefault

    public boolean enabledByDefault()

Description copied from interface: `FormatFeature`
Accessor for checking whether this feature is enabled by default.

Specified by:
  `enabledByDefault` in interface `FormatFeature`
Specified by:
  `enabledByDefault` in interface `JacksonFeature`
Returns:
  Whether this instance is enabled by default or not

#### getMask

    public int getMask()

Description copied from interface: `FormatFeature`
Returns bit mask for this feature instance; must be a single bit, that is of form `(1 << N)`

Specified by:
  `getMask` in interface `FormatFeature`
Specified by:
  `getMask` in interface `JacksonFeature`
Returns:
  Bit mask of this feature

#### enabledIn

    public boolean enabledIn(int flags)

Description copied from interface: `FormatFeature`
Convenience method for checking whether feature is enabled in given bitmask

Specified by:
  `enabledIn` in interface `FormatFeature`
Specified by:
  `enabledIn` in interface `JacksonFeature`
Parameters:
  `flags` - Bit field that contains a set of enabled features of this type
Returns:
  True if this feature is enabled in passed bit field

#### mappedFeature

    public JsonParser.Feature mappedFeature()