rapidjson
A fast JSON parser/generator for C++ with both SAX/DOM style API
 All Classes Functions Variables Typedefs Pages
Public Types | Public Member Functions | Friends | List of all members
rapidjson::GenericDocument< Encoding, Allocator > Class Template Reference

A document for parsing JSON text as DOM. More...

#include <document.h>

Inheritance diagram for rapidjson::GenericDocument< Encoding, Allocator >:
rapidjson::Handler rapidjson::GenericValue< Encoding, Allocator >

Public Types

typedef Encoding::Ch Ch
 Character type derived from Encoding.
typedef GenericValue< Encoding,
Allocator
ValueType
 Value type of the document.
typedef Allocator AllocatorType
 Allocator type from template parameter.
- Public Types inherited from rapidjson::GenericValue< Encoding, Allocator >
typedef Encoding EncodingType
 Encoding type from template parameter.
typedef Allocator AllocatorType
 Allocator type from template parameter.
typedef Encoding::Ch Ch
 Character type derived from Encoding.
typedef MemberMemberIterator
 Member iterator for iterating in object.
typedef const MemberConstMemberIterator
 Constant member iterator for iterating in object.
typedef GenericValueValueIterator
 Value iterator for iterating in array.
typedef const GenericValueConstValueIterator
 Constant value iterator for iterating in array.

Public Member Functions

 GenericDocument (Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity)
 Constructor.
template<unsigned parseFlags, typename Stream >
GenericDocumentParseStream (Stream &stream)
 Parse JSON text from an input stream.
template<unsigned parseFlags>
GenericDocumentParseInsitu (Ch *str)
 Parse JSON text from a mutable string.
template<unsigned parseFlags>
GenericDocumentParse (const Ch *str)
 Parse JSON text from a read-only string.
bool HasParseError () const
 Whether a parse error was occured in the last parsing.
const char * GetParseError () const
 Get the message of parsing error.
size_t GetErrorOffset () const
 Get the offset in character of the parsing error.
AllocatorGetAllocator ()
 Get the allocator of this document.
size_t GetStackCapacity () const
 Get the capacity of stack in bytes.
- Public Member Functions inherited from rapidjson::GenericValue< Encoding, Allocator >
template<typename Handler >
const GenericValueAccept (Handler &handler) const
 Generate events of this value to a Handler.
GenericValueoperator= (GenericValue &rhs)
 Assignment with move semantics.
template<typename T >
GenericValueoperator= (T value)
 Assignment with primitive types.
Type GetType () const
bool IsNull () const
bool IsFalse () const
bool IsTrue () const
bool IsBool () const
bool IsObject () const
bool IsArray () const
bool IsNumber () const
bool IsInt () const
bool IsUint () const
bool IsInt64 () const
bool IsUint64 () const
bool IsDouble () const
bool IsString () const
GenericValueSetNull ()
bool GetBool () const
GenericValueSetBool (bool b)
GenericValueSetObject ()
 Set this value as an empty object.
GenericValueoperator[] (const Ch *name)
 Get the value associated with the object's name.
const GenericValueoperator[] (const Ch *name) const
ConstMemberIterator MemberBegin () const
 Member iterators.
ConstMemberIterator MemberEnd () const
MemberIterator MemberBegin ()
MemberIterator MemberEnd ()
bool HasMember (const Ch *name) const
 Check whether a member exists in the object.
GenericValueAddMember (GenericValue &name, GenericValue &value, Allocator &allocator)
 Add a member (name-value pair) to the object.
GenericValueAddMember (const Ch *name, Allocator &nameAllocator, GenericValue &value, Allocator &allocator)
GenericValueAddMember (const Ch *name, GenericValue &value, Allocator &allocator)
template<typename T >
GenericValueAddMember (const Ch *name, T value, Allocator &allocator)
bool RemoveMember (const Ch *name)
 Remove a member in object by its name.
GenericValueSetArray ()
 Set this value as an empty array.
SizeType Size () const
 Get the number of elements in array.
SizeType Capacity () const
 Get the capacity of array.
bool Empty () const
 Check whether the array is empty.
void Clear ()
 Remove all elements in the array.
GenericValueoperator[] (SizeType index)
 Get an element from array by index.
const GenericValueoperator[] (SizeType index) const
ValueIterator Begin ()
 Element iterator.
ValueIterator End ()
ConstValueIterator Begin () const
ConstValueIterator End () const
GenericValueReserve (SizeType newCapacity, Allocator &allocator)
 Request the array to have enough capacity to store elements.
GenericValuePushBack (GenericValue &value, Allocator &allocator)
 Append a value at the end of the array.
template<typename T >
GenericValuePushBack (T value, Allocator &allocator)
GenericValuePopBack ()
 Remove the last element in the array.
int GetInt () const
unsigned GetUint () const
int64_t GetInt64 () const
uint64_t GetUint64 () const
double GetDouble () const
GenericValueSetInt (int i)
GenericValueSetUint (unsigned u)
GenericValueSetInt64 (int64_t i64)
GenericValueSetUint64 (uint64_t u64)
GenericValueSetDouble (double d)
const ChGetString () const
SizeType GetStringLength () const
 Get the length of string.
GenericValueSetString (const Ch *s, SizeType length)
 Set this value as a string without copying source string.
GenericValueSetString (const Ch *s)
 Set this value as a string without copying source string.
GenericValueSetString (const Ch *s, SizeType length, Allocator &allocator)
 Set this value as a string by copying from source string.
GenericValueSetString (const Ch *s, Allocator &allocator)
 Set this value as a string by copying from source string.
 GenericValue ()
 Default constructor creates a null value.
 GenericValue (Type type)
 Constructor with JSON value type.
 GenericValue (bool b)
 Constructor for boolean value.
 GenericValue (int i)
 Constructor for int value.
 GenericValue (unsigned u)
 Constructor for unsigned value.
 GenericValue (int64_t i64)
 Constructor for int64_t value.
 GenericValue (uint64_t u64)
 Constructor for uint64_t value.
 GenericValue (double d)
 Constructor for double value.
 GenericValue (const Ch *s, SizeType length)
 Constructor for constant string (i.e. do not make a copy of string)
 GenericValue (const Ch *s)
 Constructor for constant string (i.e. do not make a copy of string)
 GenericValue (const Ch *s, SizeType length, Allocator &allocator)
 Constructor for copy-string (i.e. do make a copy of string)
 GenericValue (const Ch *s, Allocator &allocator)
 Constructor for copy-string (i.e. do make a copy of string)
 ~GenericValue ()
 Destructor.

Friends

class GenericReader< Encoding, Allocator >

Detailed Description

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
class rapidjson::GenericDocument< Encoding, Allocator >

A document for parsing JSON text as DOM.

Template Parameters
Encodingencoding for both parsing and string storage.
Alloactorallocator for allocating memory for the DOM, and the stack during parsing.

Constructor & Destructor Documentation

template<typename Encoding , typename Allocator = MemoryPoolAllocator<>>
rapidjson::GenericDocument< Encoding, Allocator >::GenericDocument ( Allocator allocator = 0,
size_t  stackCapacity = kDefaultStackCapacity 
)
inline

Constructor.

Parameters
allocatorOptional allocator for allocating stack memory.
stackCapacityInitial capacity of stack in bytes.

Member Function Documentation

template<typename Encoding , typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags>
GenericDocument& rapidjson::GenericDocument< Encoding, Allocator >::Parse ( const Ch str)
inline

Parse JSON text from a read-only string.

Template Parameters
parseFlagsCombination of ParseFlag (must not contain kParseInsituFlag).
Parameters
strRead-only zero-terminated string to be parsed.
template<typename Encoding , typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags>
GenericDocument& rapidjson::GenericDocument< Encoding, Allocator >::ParseInsitu ( Ch str)
inline

Parse JSON text from a mutable string.

Template Parameters
parseFlagsCombination of ParseFlag.
Parameters
strMutable zero-terminated string to be parsed.
Returns
The document itself for fluent API.
template<typename Encoding , typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream >
GenericDocument& rapidjson::GenericDocument< Encoding, Allocator >::ParseStream ( Stream stream)
inline

Parse JSON text from an input stream.

Template Parameters
parseFlagsCombination of ParseFlag.
Parameters
streamInput stream to be parsed.
Returns
The document itself for fluent API.

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