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`