|
| GenericReader (StackAllocator *stackAllocator=0, size_t stackCapacity=kDefaultStackCapacity) |
| Constructor. More...
|
|
template<unsigned parseFlags, typename InputStream , typename Handler > |
ParseResult | Parse (InputStream &is, Handler &handler) |
| Parse JSON text. More...
|
|
template<typename InputStream , typename Handler > |
ParseResult | Parse (InputStream &is, Handler &handler) |
| Parse JSON text (with kParseDefaultFlags) More...
|
|
void | IterativeParseInit () |
| Initialize JSON text token-by-token parsing.
|
|
template<unsigned parseFlags, typename InputStream , typename Handler > |
bool | IterativeParseNext (InputStream &is, Handler &handler) |
| Parse one token from JSON text. More...
|
|
RAPIDJSON_FORCEINLINE bool | IterativeParseComplete () const |
| Check if token-by-token parsing JSON text is complete. More...
|
|
bool | HasParseError () const |
| Whether a parse error has occurred in the last parsing.
|
|
ParseErrorCode | GetParseErrorCode () const |
| Get the ParseErrorCode of last parsing.
|
|
size_t | GetErrorOffset () const |
| Get the position of last parsing error in input, 0 otherwise.
|
|
template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
class GenericReader< SourceEncoding, TargetEncoding, StackAllocator >
SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.
GenericReader parses JSON text from a stream, and send events synchronously to an object implementing Handler concept.
It needs to allocate a stack for storing a single decoded string during non-destructive parsing.
For in-situ parsing, the decoded string is directly written to the source text string, no temporary buffer is required.
A GenericReader object can be reused for parsing multiple JSON text.
- Template Parameters
-
SourceEncoding | Encoding of the input stream. |
TargetEncoding | Encoding of the parse output. |
StackAllocator | Allocator type for stack. |
template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream , typename Handler >
bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IterativeParseNext |
( |
InputStream & |
is, |
|
|
Handler & |
handler |
|
) |
| |
|
inline |
Parse one token from JSON text.
- Template Parameters
-
InputStream | Type of input stream, implementing Stream concept |
Handler | Type of handler, implementing Handler concept. |
- Parameters
-
is | Input stream to be parsed. |
handler | The handler to receive events. |
- Returns
- Whether the parsing is successful.
template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream , typename Handler >
ParseResult GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Parse |
( |
InputStream & |
is, |
|
|
Handler & |
handler |
|
) |
| |
|
inline |
Parse JSON text (with kParseDefaultFlags)
- Template Parameters
-
InputStream | Type of input stream, implementing Stream concept |
Handler | Type of handler, implementing Handler concept. |
- Parameters
-
is | Input stream to be parsed. |
handler | The handler to receive events. |
- Returns
- Whether the parsing is successful.