com.fasterxml.jackson.core

## Enum JsonParser.Feature

- java.lang.Object
- - java.lang.Enum<JsonParser.Feature>
  - - com.fasterxml.jackson.core.JsonParser.Feature

- All Implemented Interfaces:
    Serializable, Comparable<JsonParser.Feature>
  Enclosing class:
    JsonParser

      public static enum JsonParser.Feature
      extends Enum<JsonParser.Feature>

  Enumeration that defines all on/off features for parsers.

- - ### 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 qooting 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_COMMENTS` Feature that determines whether parser will allow use of Java/C++ style comments (both '/'+'*' and '//' varieties) within parsed content or not.
    `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_NUMERIC_LEADING_ZEROS` Feature that determines whether parser will allow JSON integral numbers to start with additional (ignorable) zeroes (like: 000001).
    `ALLOW_SINGLE_QUOTES` Feature that determines whether parser will allow use of single quotes (apostrophe, character '\'') for quoting Strings (names and String values).
    `ALLOW_UNQUOTED_CONTROL_CHARS` Feature that determines whether parser will allow JSON Strings to contain unquoted 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.
    `AUTO_CLOSE_SOURCE` Feature that determines whether parser will automatically close underlying input source that is NOT owned by the parser.
    `STRICT_DUPLICATE_DETECTION` Feature that determines whether `JsonParser` will explicitly check that no duplicate JSON Object field names are encountered.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `collectDefaults()` Method that calculates bit set (flags) of all features that are enabled by default.
    `boolean` | `enabledByDefault()`
    `boolean` | `enabledIn(int flags)`
    `int` | `getMask()`
    `static JsonParser.Feature` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static JsonParser.Feature[]` | `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

    - #### AUTO_CLOSE_SOURCE

          public static final JsonParser.Feature AUTO_CLOSE_SOURCE

      Feature that determines whether parser will automatically close underlying input source that is NOT owned by the parser. If disabled, calling application has to separately close the underlying `InputStream` and `Reader` instances used to create the parser. If enabled, parser will handle closing, as long as parser itself gets closed: this happens when end-of-input is encountered, or parser is closed by a call to `JsonParser.close()`.

      Feature is enabled by default.

    - #### ALLOW_COMMENTS

          public static final JsonParser.Feature ALLOW_COMMENTS

      Feature that determines whether parser will allow use of Java/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 JsonParser.Feature 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_UNQUOTED_FIELD_NAMES

          public static final JsonParser.Feature 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_SINGLE_QUOTES

          public static final JsonParser.Feature 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 acceptabl markers. 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_UNQUOTED_CONTROL_CHARS

          public static final JsonParser.Feature ALLOW_UNQUOTED_CONTROL_CHARS

      Feature that determines whether parser will allow JSON Strings to contain unquoted 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 JsonParser.Feature ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER

      Feature that can be enabled to accept quoting of all character using backslash qooting 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_NUMERIC_LEADING_ZEROS

          public static final JsonParser.Feature ALLOW_NUMERIC_LEADING_ZEROS

      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_NON_NUMERIC_NUMBERS

          public static final JsonParser.Feature 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.

    - #### STRICT_DUPLICATE_DETECTION

          public static final JsonParser.Feature STRICT_DUPLICATE_DETECTION

      Feature that determines whether `JsonParser` will explicitly check that no duplicate JSON Object field names are encountered. If enabled, parser will check all names within context and report duplicates by throwing a `JsonParseException`; if disabled, parser will not do such checking. Assumption in latter case is that caller takes care of handling duplicates at a higher level: data-binding, for example, has features to specify detection to be done there.

      Note that enabling this feature will incur performance overhead due to having to store and check additional information: this typically adds 20-30% to execution time for basic parsing.

      Since:
        2.3

  - ### Method Detail

    - #### values

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

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

    - #### valueOf

          public static JsonParser.Feature 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.

    - #### enabledByDefault

          public boolean enabledByDefault()

    - #### enabledIn

          public boolean enabledIn(int flags)

      Since:
        2.3

    - #### getMask

          public int getMask()

Copyright © 2012-2013 FasterXML. All Rights Reserved.