rapidjson::GenericReader< SourceEncoding, TargetEncoding, StackAllocator > Class Template Reference

SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. More...

`#include <reader.h>`

## Public Types

typedef SourceEncoding::Ch | Ch
| SourceEncoding character type.

## Public Member Functions

| 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...
bool | HasParseError () const
| Whether a parse error has occured 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.

## Protected Member Functions

void | SetParseError (ParseErrorCode code, size_t offset)

## Detailed Description

### template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
class rapidjson::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.

## Constructor & Destructor Documentation

## GenericReader()

template<typename SourceEncoding , typename TargetEncoding , typename StackAllocator = CrtAllocator>

rapidjson::GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::GenericReader | ( | StackAllocator * | stackAllocator = `0`,
|  | size_t | stackCapacity = `kDefaultStackCapacity`
| ) |  |

inline

Constructor.

Parameters

  stackAllocator | Optional allocator for allocating stack memory. (Only use for non-destructive parsing)
  stackCapacity | stack capacity in bytes for storing a single decoded string. (Only use for non-destructive parsing)

## Member Function Documentation

## Parse() [1/2]

template<typename SourceEncoding , typename TargetEncoding , typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream , typename Handler >

ParseResult rapidjson::GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Parse | ( | InputStream & | is,
|  | Handler & | handler
| ) |  |

inline

Parse JSON text.

Template Parameters

  parseFlags | Combination of ParseFlag.
  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.

## Parse() [2/2]

template<typename SourceEncoding , typename TargetEncoding , typename StackAllocator = CrtAllocator>
template<typename InputStream , typename Handler >

ParseResult rapidjson::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.

The documentation for this class was generated from the following files:

- include/rapidjson/fwd.h
- include/rapidjson/reader.h