Class JsonParserImpl

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, JsonParser

    public class JsonParserImpl
    extends java.lang.Object
    implements JsonParser
    JSON parser implementation. NoneContext, ArrayContext, ObjectContext is used to go to next parser state.
    • Constructor Detail

      • JsonParserImpl

        public JsonParserImpl​(java.io.Reader reader,
                              BufferPool bufferPool)
      • JsonParserImpl

        public JsonParserImpl​(java.io.InputStream in,
                              BufferPool bufferPool)
      • JsonParserImpl

        public JsonParserImpl​(java.io.InputStream in,
                              java.nio.charset.Charset encoding,
                              BufferPool bufferPool)
    • Method Detail

      • isIntegralNumber

        public boolean isIntegralNumber()
        Description copied from interface: JsonParser
        Returns true if the JSON number at the current parser state is a integral number. A BigDecimal may be used to store the value internally and this method semantics are defined using its scale(). If the scale is zero, then it is considered integral type. This integral type information can be used to invoke an appropriate accessor method to obtain a numeric value as in the following example:
         
         JsonParser parser = ...
         if (parser.isIntegralNumber()) {
             parser.getInt();     // or other methods to get integral value
         } else {
             parser.getBigDecimal();
         }
         
         
        Specified by:
        isIntegralNumber in interface JsonParser
        Returns:
        true if this number is a integral number, otherwise false
      • getInt

        public int getInt()
        Description copied from interface: JsonParser
        Returns a JSON number as an integer. The returned value is equal to new BigDecimal(getString()).intValue(). Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign. This method should only be called when the parser state is JsonParser.Event.VALUE_NUMBER.
        Specified by:
        getInt in interface JsonParser
        Returns:
        an integer for a JSON number
        See Also:
        BigDecimal.intValue()
      • isDefinitelyInt

        boolean isDefinitelyInt()
      • getLong

        public long getLong()
        Description copied from interface: JsonParser
        Returns a JSON number as a long. The returned value is equal to new BigDecimal(getString()).longValue(). Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign. This method is only called when the parser state is JsonParser.Event.VALUE_NUMBER.
        Specified by:
        getLong in interface JsonParser
        Returns:
        a long for a JSON number
        See Also:
        BigDecimal.longValue()
      • getBigDecimal

        public java.math.BigDecimal getBigDecimal()
        Description copied from interface: JsonParser
        Returns a JSON number as a BigDecimal. The BigDecimal is created using new BigDecimal(getString()). This method should only called when the parser state is JsonParser.Event.VALUE_NUMBER.
        Specified by:
        getBigDecimal in interface JsonParser
        Returns:
        a BigDecimal for a JSON number
      • getLocation

        public JsonLocation getLocation()
        Description copied from interface: JsonParser
        Return the location that corresponds to the parser's current state in the JSON input source. The location information is only valid in the current parser state (or until the parser is advanced to a next state).
        Specified by:
        getLocation in interface JsonParser
        Returns:
        a non-null location corresponding to the current parser state in JSON input source
      • getLastCharLocation

        public JsonLocation getLastCharLocation()
      • hasNext

        public boolean hasNext()
        Description copied from interface: JsonParser
        Returns true if there are more parsing states. This method returns false if the parser reaches the end of the JSON text.
        Specified by:
        hasNext in interface JsonParser
        Returns:
        true if there are more parsing states.
      • close

        public void close()
        Description copied from interface: JsonParser
        Closes this parser and frees any resources associated with the parser. This method closes the underlying input source.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface JsonParser