groovy.json

## Class JsonLexer

- java.lang.Object
- - groovy.json.JsonLexer

All Implemented Interfaces:
  java.util.Iterator<JsonToken>

    public class JsonLexer
    extends java.lang.Object
    implements java.util.Iterator<JsonToken>

The lexer reads JSON tokens in a streaming fashion from the underlying reader.

Since:
  1.8.0

### Constructor Summary

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

### Method Summary

Methods
`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 java.lang.String` `unescape(java.lang.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(java.io.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 java.lang.String unescape(java.lang.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 `java.util.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 `java.util.Iterator<JsonToken>`
Returns:
  the next token

#### remove

    public void remove()

Method not implemented.

Specified by:
  `remove` in interface `java.util.Iterator<JsonToken>`
Throws:
  `java.lang.UnsupportedOperationException`