java.lang.Object
com.google.gson.JsonStreamParser
- All Implemented Interfaces:
Iterator<JsonElement>
A streaming parser that allows reading of multiple
JsonElement
s from the specified reader
asynchronously. The JSON data is parsed in lenient mode, see also
JsonReader.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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
hasNext()
Returns true if aJsonElement
is available on the input for consumptionnext()
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 Details
-
JsonStreamParser
- Parameters:
json
- The string containing JSON elements concatenated to each other.- Since:
- 1.4
-
JsonStreamParser
- Parameters:
reader
- The data stream containing JSON elements concatenated to each other.- Since:
- 1.4
-
-
Method Details
-
next
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:
JsonSyntaxException
- if the incoming stream is malformed JSON.NoSuchElementException
- if noJsonElement
is available.JsonParseException
- 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:
JsonSyntaxException
- 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
-