Package groovy.json

# Class JsonLexer

java.lang.Object
groovy.json.JsonLexer

All Implemented Interfaces:
  `Iterator<JsonToken>`

public class JsonLexer extends Object implements Iterator<JsonToken>
The lexer reads JSON tokens in a streaming fashion from the underlying reader.

Since:
  1.8.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JsonLexer(Reader reader)`
  Instantiates a lexer with a reader from which to read JSON tokens.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `LineColumnReader`
  `getReader()`
  Underlying reader from which to read the JSON tokens.
  `boolean`
  `hasNext()`
  Iterator method to know if another token follows, or if we've reached the end of the stream.
  `JsonToken`
  `next()`
  Iterator method to get the next token of the stream.
  `JsonToken`
  `nextToken()`
  `void`
  `remove()`
  Method not implemented.
  `int`
  `skipWhitespace()`
  Skips all the whitespace characters and moves the cursor to the next non-space character.
  `static String`
  `unescape(String input)`
  Replace unicode escape and other control characters with real characters

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

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

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining`

- ## Constructor Details

  - ### JsonLexer

    public JsonLexer(Reader reader)
    Instantiates a lexer with a reader from which to read JSON tokens. Under the hood, the reader is wrapped in a `LineColumnReader`, for line and column information, unless it's already an instance of that class.
    Parameters:
      `reader` - underlying reader

- ## Method Details

  - ### getReader

    public LineColumnReader getReader()
    Underlying reader from which to read the JSON tokens. This reader is an instance of `LineColumnReader`, to keep track of line and column positions.

  - ### nextToken

    public JsonToken nextToken()
    Returns:
      the next token from the stream

  - ### unescape

    public static String unescape(String input)
    Replace unicode escape and other control characters with real characters
    Parameters:
      `input` - text
    Returns:
      input text without the escaping

  - ### skipWhitespace

    public int skipWhitespace()
    Skips all the whitespace characters and moves the cursor to the next non-space character.

  - ### hasNext

    public boolean hasNext()
    Iterator method to know if another token follows, or if we've reached the end of the stream.
    Specified by:
      `hasNext` in interface `Iterator<JsonToken>`
    Returns:
      true if there are more tokens

  - ### next

    public JsonToken next()
    Iterator method to get the next token of the stream.
    Specified by:
      `next` in interface `Iterator<JsonToken>`
    Returns:
      the next token

  - ### remove

    public void remove()
    Method not implemented.
    Specified by:
      `remove` in interface `Iterator<JsonToken>`
    Throws:
      `UnsupportedOperationException`