- 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 multipleJsonElements 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 booleanhasNext()Returns true if aJsonElementis available on the input for consumptionJsonElementnext()Returns the next availableJsonElementon the reader.voidremove()This optionalIteratormethod 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 availableJsonElementon the reader. Throws aNoSuchElementExceptionif no element is available.- Specified by:
nextin interfaceIterator<JsonElement>- Returns:
- the next available
JsonElementon the reader. - Throws:
JsonSyntaxException- if the incoming stream is malformed JSON.NoSuchElementException- if noJsonElementis available.JsonParseException- Since:
- 1.4
-
hasNext
public boolean hasNext()
Returns true if aJsonElementis available on the input for consumption- Specified by:
hasNextin interfaceIterator<JsonElement>- Returns:
- true if a
JsonElementis available on the input, false otherwise - Throws:
JsonSyntaxException- if the incoming stream is malformed JSON.- Since:
- 1.4
-
remove
public void remove()
This optionalIteratormethod is not relevant for stream parsing and hence is not implemented.- Specified by:
removein interfaceIterator<JsonElement>- Since:
- 1.4
-
-