- java.lang.Object
-
- com.google.gson.JsonStreamParser
-
- All Implemented Interfaces:
Iterator<JsonElement>
public final class JsonStreamParser extends Object implements Iterator<JsonElement>
A streaming parser that allows reading of multipleJsonElement
s from the specified reader asynchronously. The JSON data is parsed in lenient mode, see alsoJsonReader.setLenient(boolean)
.This class is conditionally thread-safe (see Item 70, Effective Java second edition). To properly use this class across multiple threads, you will need to add some external synchronization. For example:
JsonStreamParser parser = new JsonStreamParser("['first'] {'second':10} 'third'"); JsonElement element; synchronized (parser) { // synchronize on an object shared by threads if (parser.hasNext()) { element = parser.next(); } }
- Since:
- 1.4
- Author:
- Inderjeet Singh, Joel Leitch
-
-
Constructor Summary
Constructors Constructor Description JsonStreamParser(Reader reader)
JsonStreamParser(String json)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
hasNext()
Returns true if aJsonElement
is available on the input for consumptionJsonElement
next()
Returns the next availableJsonElement
on the reader.void
remove()
This optionalIterator
method is not relevant for stream parsing and hence is not implemented.-
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 Detail
-
JsonStreamParser
public JsonStreamParser(String json)
- Parameters:
json
- The string containing JSON elements concatenated to each other.- Since:
- 1.4
-
JsonStreamParser
public JsonStreamParser(Reader reader)
- Parameters:
reader
- The data stream containing JSON elements concatenated to each other.- Since:
- 1.4
-
-
Method Detail
-
next
public JsonElement next() throws JsonParseException
Returns the next availableJsonElement
on the reader. Throws aNoSuchElementException
if no element is available.- Specified by:
next
in interfaceIterator<JsonElement>
- Returns:
- the next available
JsonElement
on the reader. - Throws:
JsonParseException
- if the incoming stream is malformed JSON.NoSuchElementException
- if noJsonElement
is available.- Since:
- 1.4
-
hasNext
public boolean hasNext()
Returns true if aJsonElement
is available on the input for consumption- Specified by:
hasNext
in interfaceIterator<JsonElement>
- Returns:
- true if a
JsonElement
is available on the input, false otherwise - Throws:
JsonParseException
- if the incoming stream is malformed JSON.- Since:
- 1.4
-
remove
public void remove()
This optionalIterator
method is not relevant for stream parsing and hence is not implemented.- Specified by:
remove
in interfaceIterator<JsonElement>
- Since:
- 1.4
-
-