com.fasterxml.jackson.core.json

## Class JsonParserBase

- java.lang.Object
- - com.fasterxml.jackson.core.JsonParser
  - - com.fasterxml.jackson.core.base.ParserMinimalBase
    - - com.fasterxml.jackson.core.base.ParserBase
      - - com.fasterxml.jackson.core.json.JsonParserBase

All Implemented Interfaces:
  Versioned, Closeable, AutoCloseable

Direct Known Subclasses:
  NonBlockingJsonParserBase, ReaderBasedJsonParser, UTF8DataInputJsonParser, UTF8StreamJsonParser

    public abstract class JsonParserBase
    extends ParserBase

Another intermediate base class, only used by actual JSON-backed parser implementations.

Since:
  2.17

### Nested Class Summary

### Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonParser

`JsonParser.Feature, JsonParser.NumberType, JsonParser.NumberTypeFP`

### Field Summary

Fields
`protected ObjectCodec` `_objectCodec` Codec used for data binding when (if) requested; typically full `ObjectMapper`, but that abstract is not part of core package.
`protected static int` `FEAT_MASK_ALLOW_JAVA_COMMENTS`
`protected static int` `FEAT_MASK_ALLOW_MISSING`
`protected static int` `FEAT_MASK_ALLOW_SINGLE_QUOTES`
`protected static int` `FEAT_MASK_ALLOW_UNQUOTED_NAMES`
`protected static int` `FEAT_MASK_ALLOW_YAML_COMMENTS`
`protected static int` `FEAT_MASK_LEADING_ZEROS`
`protected static int` `FEAT_MASK_NON_NUM_NUMBERS`
`protected static int` `FEAT_MASK_TRAILING_COMMA`
`protected static int[]` `INPUT_CODES_LATIN1`
`protected static int[]` `INPUT_CODES_UTF8`

### Fields inherited from class com.fasterxml.jackson.core.base.ParserBase

`_binaryValue, _byteArrayBuilder, _closed, _currInputProcessed, _currInputRow, _currInputRowStart, _expLength, _fractLength, _inputEnd, _inputPtr, _intLength, _ioContext, _nameCopied, _nameCopyBuffer, _nextToken, _numberBigDecimal, _numberBigInt, _numberDouble, _numberFloat, _numberInt, _numberIsNaN, _numberLong, _numberNegative, _numberString, _numTypesValid, _parsingContext, _textBuffer, _tokenInputCol, _tokenInputRow, _tokenInputTotal, JSON_READ_CAPABILITIES`

### Fields inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

`_currToken, _lastClearedToken, _streamReadConstraints, _tokenCount, _trackMaxTokenCount, BD_MAX_INT, BD_MAX_LONG, BD_MIN_INT, BD_MIN_LONG, BI_MAX_INT, BI_MAX_LONG, BI_MIN_INT, BI_MIN_LONG, CHAR_NULL, INT_0, INT_9, INT_APOS, INT_ASTERISK, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_e, INT_E, INT_HASH, INT_LBRACKET, INT_LCURLY, INT_LF, INT_MINUS, INT_PERIOD, INT_PLUS, INT_QUOTE, INT_RBRACKET, INT_RCURLY, INT_SLASH, INT_SPACE, INT_TAB, MAX_ERROR_TOKEN_LENGTH, MAX_INT_D, MAX_INT_L, MAX_LONG_D, MIN_INT_D, MIN_INT_L, MIN_LONG_D, NO_BYTES, NO_INTS, NR_BIGDECIMAL, NR_BIGINT, NR_DOUBLE, NR_FLOAT, NR_INT, NR_LONG, NR_UNKNOWN`

### Fields inherited from class com.fasterxml.jackson.core.JsonParser

`_features, _requestPayload, DEFAULT_READ_CAPABILITIES`

### Constructor Summary

Constructors
`protected` `JsonParserBase(IOContext ioCtxt, int features, ObjectCodec codec)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`protected abstract JsonLocation` `_currentLocationMinusOne()` Factory method used to provide location for cases where we must read and consume a single "wrong" character (to possibly allow error recovery), but need to report accurate location for that character: if so, the current location is past location we want, and location we want will be "one location earlier".
`abstract JsonLocation` `currentLocation()` Method that returns location of the last processed input unit (character or byte) from the input; usually for error reporting purposes.
`abstract JsonLocation` `currentTokenLocation()` Method that return the starting location of the current (most recently returned) token; that is, the position of the first input unit (character or byte) from input that starts the current token.
`ObjectCodec` `getCodec()` Accessor for `ObjectCodec` associated with this parser, if any.
`JsonLocation` `getCurrentLocation()` Deprecated.
`JsonParser.NumberTypeFP` `getNumberTypeFP()` JSON format does not have native information on "correct" floating-point type to use, unlike some formats (most binary formats), so it needs to indicate this as `JsonParser.NumberTypeFP.UNKNOWN`.
`JacksonFeatureSet<StreamReadCapability>` `getReadCapabilities()` Accessor for getting metadata on capabilities of this parser, based on underlying data format being read (directly or indirectly).
`JsonLocation` `getTokenLocation()` Deprecated.
`void` `setCodec(ObjectCodec c)` Setter that allows defining `ObjectCodec` associated with this parser, if any.

### Methods inherited from class com.fasterxml.jackson.core.base.ParserBase

`_checkStdFeatureChanges, _closeInput, _contentReference, _contentReferenceRedacted, _convertBigDecimalToBigInteger, _decodeBase64Escape, _decodeBase64Escape, _decodeEscaped, _eofAsNextChar, _finishString, _getBigDecimal, _getBigInteger, _getByteArrayBuilder, _getNumberDouble, _getNumberFloat, _getSourceReference, _growNameDecodeBuffer, _handleBase64MissingPadding, _handleEOF, _handleUnrecognizedCharacterEscape, _parseIntValue, _parseNumericValue, _releaseBuffers, _reportMismatchedEndMarker, _reportTooLongIntegral, _throwUnquotedSpace, _validJsonTokenList, _validJsonValueList, assignCurrentValue, close, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToFloat, convertNumberToInt, convertNumberToLong, createChildArrayContext, createChildObjectContext, currentValue, disable, enable, getBigIntegerValue, getBinaryValue, getCurrentName, getDecimalValue, getDoubleValue, getFloatValue, getIntValue, getLongValue, getNumberType, getNumberValue, getNumberValueDeferred, getNumberValueExact, getParsingContext, getTokenCharacterOffset, getTokenColumnNr, getTokenLineNr, growArrayBy, hasTextCharacters, isClosed, isNaN, loadMore, loadMoreGuaranteed, overrideCurrentName, overrideStdFeatures, reportInvalidBase64Char, reportInvalidBase64Char, reset, resetAsNaN, resetFloat, resetInt, setFeatureMask, version`

### Methods inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

`_ascii, _asciiBytes, _constructError, _decodeBase64, _getCharDesc, _hasTextualNull, _longIntegerDesc, _longNumberDesc, _nullSafeUpdateToken, _reportError, _reportError, _reportError, _reportInputCoercion, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _reportUnexpectedNumberChar, _throwInternal, _throwInternalReturnAny, _throwInvalidSpace, _updateToken, _updateTokenToNA, _updateTokenToNull, _wrapError, clearCurrentToken, currentToken, currentTokenCount, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getText, getTextCharacters, getTextLength, getTextOffset, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsString, getValueAsString, hasCurrentToken, hasToken, hasTokenId, isExpectedNumberIntToken, isExpectedStartArrayToken, isExpectedStartObjectToken, nextToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar, skipChildren, streamReadConstraints`

### Methods inherited from class com.fasterxml.jackson.core.JsonParser

`_codec, _constructError, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _reportUnsupportedOperation, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentName, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getEmbeddedObject, getFeatureMask, getFormatFeatures, getInputSource, getNonBlockingInputFeeder, getObjectId, getSchema, getShortValue, getText, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideFormatFeatures, readBinaryValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, requiresCustomCodec, setCurrentValue, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FEAT_MASK_TRAILING_COMMA

    protected static final int FEAT_MASK_TRAILING_COMMA

#### FEAT_MASK_LEADING_ZEROS

    protected static final int FEAT_MASK_LEADING_ZEROS

#### FEAT_MASK_NON_NUM_NUMBERS

    protected static final int FEAT_MASK_NON_NUM_NUMBERS

#### FEAT_MASK_ALLOW_MISSING

    protected static final int FEAT_MASK_ALLOW_MISSING

#### FEAT_MASK_ALLOW_SINGLE_QUOTES

    protected static final int FEAT_MASK_ALLOW_SINGLE_QUOTES

#### FEAT_MASK_ALLOW_UNQUOTED_NAMES

    protected static final int FEAT_MASK_ALLOW_UNQUOTED_NAMES

#### FEAT_MASK_ALLOW_JAVA_COMMENTS

    protected static final int FEAT_MASK_ALLOW_JAVA_COMMENTS

#### FEAT_MASK_ALLOW_YAML_COMMENTS

    protected static final int FEAT_MASK_ALLOW_YAML_COMMENTS

#### INPUT_CODES_LATIN1

    protected static final int[] INPUT_CODES_LATIN1

#### INPUT_CODES_UTF8

    protected static final int[] INPUT_CODES_UTF8

#### _objectCodec

    protected ObjectCodec _objectCodec

Codec used for data binding when (if) requested; typically full `ObjectMapper`, but that abstract is not part of core package.

### Constructor Detail

#### JsonParserBase

    protected JsonParserBase(IOContext ioCtxt,
                             int features,
                             ObjectCodec codec)

### Method Detail

#### getCodec

    public ObjectCodec getCodec()

Description copied from class: `JsonParser`
Accessor for `ObjectCodec` associated with this parser, if any. Codec is used by `JsonParser.readValueAs(Class)` method (and its variants).

Specified by:
  `getCodec` in class `JsonParser`
Returns:
  Codec assigned to this parser, if any; `null` if none

#### setCodec

    public void setCodec(ObjectCodec c)

Description copied from class: `JsonParser`
Setter that allows defining `ObjectCodec` associated with this parser, if any. Codec is used by `JsonParser.readValueAs(Class)` method (and its variants).

Specified by:
  `setCodec` in class `JsonParser`
Parameters:
  `c` - Codec to assign, if any; `null` if none

#### getReadCapabilities

    public final JacksonFeatureSet<StreamReadCapability> getReadCapabilities()

Description copied from class: `JsonParser`
Accessor for getting metadata on capabilities of this parser, based on underlying data format being read (directly or indirectly).

Overrides:
  `getReadCapabilities` in class `JsonParser`
Returns:
  Set of read capabilities for content to read via this parser

#### getNumberTypeFP

    public JsonParser.NumberTypeFP getNumberTypeFP()
                                            throws IOException

JSON format does not have native information on "correct" floating-point type to use, unlike some formats (most binary formats), so it needs to indicate this as `JsonParser.NumberTypeFP.UNKNOWN`.

Overrides:
  `getNumberTypeFP` in class `JsonParser`
Returns:
  Natural floating-point type if known; `JsonParser.NumberTypeFP.UNKNOWN` for all JSON-backed parsers.
Throws:
  `IOException` - for low-level read issues, or `JsonParseException` for decoding problems

#### currentLocation

    public abstract JsonLocation currentLocation()

Description copied from class: `JsonParser`
Method that returns location of the last processed input unit (character or byte) from the input; usually for error reporting purposes.

Note that the location is not guaranteed to be accurate (although most implementation will try their best): some implementations may only report specific boundary locations (start or end locations of tokens) and others only return `JsonLocation.NA` due to not having access to input location information (when delegating actual decoding work to other library)

Overrides:
  `currentLocation` in class `JsonParser`
Returns:
  Location of the last processed input unit (byte or character)

#### currentTokenLocation

    public abstract JsonLocation currentTokenLocation()

Description copied from class: `JsonParser`
Method that return the starting location of the current (most recently returned) token; that is, the position of the first input unit (character or byte) from input that starts the current token.

Note that the location is not guaranteed to be accurate (although most implementation will try their best): some implementations may only return `JsonLocation.NA` due to not having access to input location information (when delegating actual decoding work to other library)

Overrides:
  `currentTokenLocation` in class `JsonParser`
Returns:
  Starting location of the token parser currently points to

#### _currentLocationMinusOne

    protected abstract JsonLocation _currentLocationMinusOne()

Description copied from class: `ParserMinimalBase`
Factory method used to provide location for cases where we must read and consume a single "wrong" character (to possibly allow error recovery), but need to report accurate location for that character: if so, the current location is past location we want, and location we want will be "one location earlier".

Default implementation simply returns `JsonParser.currentLocation()`

Overrides:
  `_currentLocationMinusOne` in class `ParserMinimalBase`
Returns:
  Same as `JsonParser.currentLocation()` except offset by -1

#### getCurrentLocation

    @Deprecated
    public final JsonLocation getCurrentLocation()

Deprecated.
Description copied from class: `ParserBase`
Method that returns location of the last processed character; usually for error reporting purposes

Overrides:
  `getCurrentLocation` in class `ParserBase`
Returns:
  Location of the last processed input unit (byte or character)

#### getTokenLocation

    @Deprecated
    public final JsonLocation getTokenLocation()

Deprecated.
Description copied from class: `ParserBase`
Method that return the starting location of the current token; that is, position of the first character from input that starts the current token.

Overrides:
  `getTokenLocation` in class `ParserBase`
Returns:
  Starting location of the token parser currently points to