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

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