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
  Author:
    Guillaume Laforge

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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`

- - ### Constructor Detail

    - #### JsonLexer

          public JsonLexer(Reader reader)

      Instanciates 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 Detail

    - #### 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`