All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rapidjson Namespace Reference

main RapidJSON namespace More...

Classes

class  Allocator
 Concept for allocating, resizing and freeing memory block. More...
 
struct  ASCII
 ASCII encoding. More...
 
struct  AutoUTF
 Dynamically select encoding according to stream's runtime-specified UTF encoding type. More...
 
class  AutoUTFInputStream
 Input stream wrapper with dynamically bound encoding and automatic encoding detection. More...
 
class  AutoUTFOutputStream
 Output stream wrapper with dynamically bound encoding and automatic encoding detection. More...
 
struct  BaseReaderHandler
 Default implementation of Handler. More...
 
class  CrtAllocator
 C-runtime library allocator. More...
 
class  EncodedInputStream
 Input byte stream wrapper with a statically bound encoding. More...
 
class  EncodedOutputStream
 Output byte stream wrapper with statically bound encoding. More...
 
class  Encoding
 Concept for encoding of Unicode characters. More...
 
class  FileReadStream
 File byte stream for input using fread(). More...
 
class  FileWriteStream
 Wrapper of C file stream for input using fread(). More...
 
class  GenericDocument
 A document for parsing JSON text as DOM. More...
 
struct  GenericInsituStringStream
 A read-write string stream. More...
 
struct  GenericMember
 Name-value pair in a JSON object value. More...
 
class  GenericMemberIterator
 (Constant) member iterator for a JSON object value More...
 
struct  GenericMemoryBuffer
 Represents an in-memory output byte stream. More...
 
class  GenericPointer
 Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. More...
 
class  GenericReader
 SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. More...
 
class  GenericStringBuffer
 Represents an in-memory output stream. More...
 
struct  GenericStringRef
 Reference to a constant string (not taking a copy) More...
 
struct  GenericStringStream
 Read-only string stream. More...
 
class  GenericValue
 Represents a JSON value. Use Value for UTF8 encoding and default allocator. More...
 
class  Handler
 Concept for receiving events from GenericReader upon parsing. The functions return true if no error occurs. If they return false, the event publisher should terminate the process. More...
 
class  MemoryPoolAllocator
 Default memory allocator used by the parser and DOM. More...
 
struct  MemoryStream
 Represents an in-memory input byte stream. More...
 
struct  ParseResult
 Result of parsing (wraps ParseErrorCode) More...
 
class  PrettyWriter
 Writer with indentation and spacing. More...
 
class  Stream
 Concept for reading and writing characters. More...
 
struct  StreamTraits
 Provides additional information for stream. More...
 
struct  StreamTraits< GenericInsituStringStream< Encoding > >
 
struct  StreamTraits< GenericStringStream< Encoding > >
 
struct  Transcoder
 Encoding conversion. More...
 
struct  Transcoder< Encoding, Encoding >
 Specialization of Transcoder with same source and target encoding. More...
 
struct  UTF16
 UTF-16 encoding. More...
 
struct  UTF16BE
 UTF-16 big endian encoding. More...
 
struct  UTF16LE
 UTF-16 little endian encoding. More...
 
struct  UTF32
 UTF-32 encoding. More...
 
struct  UTF32BE
 UTF-32 big endian encoding. More...
 
struct  UTF32LE
 UTF-32 little endian enocoding. More...
 
struct  UTF8
 UTF-8 encoding. More...
 
class  Writer
 JSON writer. More...
 

Typedefs

typedef unsigned SizeType
 Size type (for string lengths, array sizes, etc.) More...
 
typedef GenericStringStream
< UTF8<> > 
StringStream
 String stream with UTF8 encoding.
 
typedef
GenericInsituStringStream
< UTF8<> > 
InsituStringStream
 Insitu string stream with UTF8 encoding.
 
typedef GenericValue< UTF8<> > Value
 GenericValue with UTF8 encoding.
 
typedef GenericDocument< UTF8<> > Document
 GenericDocument with UTF8 encoding.
 
typedef const
RAPIDJSON_ERROR_CHARTYPE *(* 
GetParseErrorFunc )(ParseErrorCode)
 Function pointer type of GetParseError(). More...
 
typedef GenericMemoryBuffer MemoryBuffer
 
typedef GenericPointer< ValuePointer
 GenericPointer for Value (UTF-8, default allocator).
 
typedef GenericReader< UTF8
<>, UTF8<> > 
Reader
 Reader with UTF8 encoding and default allocator.
 
typedef GenericStringBuffer
< UTF8<> > 
StringBuffer
 String buffer with UTF8 encoding.
 

Enumerations

enum  Type {
  kNullType = 0, kFalseType = 1, kTrueType = 2, kObjectType = 3,
  kArrayType = 4, kStringType = 5, kNumberType = 6
}
 Type of JSON value. More...
 
enum  UTFType {
  kUTF8 = 0, kUTF16LE = 1, kUTF16BE = 2, kUTF32LE = 3,
  kUTF32BE = 4
}
 Runtime-specified UTF encoding type of a stream. More...
 
enum  ParseErrorCode {
  kParseErrorNone = 0, kParseErrorDocumentEmpty, kParseErrorDocumentRootNotSingular, kParseErrorValueInvalid,
  kParseErrorObjectMissName, kParseErrorObjectMissColon, kParseErrorObjectMissCommaOrCurlyBracket, kParseErrorArrayMissCommaOrSquareBracket,
  kParseErrorStringUnicodeEscapeInvalidHex, kParseErrorStringUnicodeSurrogateInvalid, kParseErrorStringEscapeInvalid, kParseErrorStringMissQuotationMark,
  kParseErrorStringInvalidEncoding, kParseErrorNumberTooBig, kParseErrorNumberMissFraction, kParseErrorNumberMissExponent,
  kParseErrorTermination, kParseErrorUnspecificSyntaxError
}
 Error code of parsing. More...
 
enum  PointerParseErrorCode {
  kPointerParseErrorNone = 0, kPointerParseErrorTokenMustBeginWithSolidus, kPointerParseErrorInvalidEscape, kPointerParseErrorInvalidPercentEncoding,
  kPointerParseErrorCharacterMustPercentEncode
}
 Error code of parsing. More...
 
enum  ParseFlag {
  kParseNoFlags = 0, kParseInsituFlag = 1, kParseValidateEncodingFlag = 2, kParseIterativeFlag = 4,
  kParseStopWhenDoneFlag = 8, kParseFullPrecisionFlag = 16, kParseDefaultFlags = RAPIDJSON_PARSE_DEFAULT_FLAGS
}
 Combination of parseFlags. More...
 

Functions

template<typename Stream , typename Ch >
void PutN (Stream &stream, Ch c, size_t n)
 Put N copies of a character to a stream.
 
template<typename CharType >
GenericStringRef< CharType > StringRef (const CharType *str)
 Mark a character pointer as constant string. More...
 
template<typename CharType >
GenericStringRef< CharType > StringRef (const CharType *str, size_t length)
 Mark a character pointer as constant string. More...
 
template<typename CharType >
GenericStringRef< CharType > StringRef (const std::basic_string< CharType > &str)
 Mark a string object as constant string. More...
 
const RAPIDJSON_ERROR_CHARTYPEGetParseError_En (ParseErrorCode parseErrorCode)
 Maps error code of parsing into error message. More...
 
template<>
void PutN (FileWriteStream &stream, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
template<>
void PutN (MemoryBuffer &memoryBuffer, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
template<typename InputStream >
void SkipWhitespace (InputStream &is)
 Skip the JSON white spaces in a stream. More...
 
template<>
void SkipWhitespace (InsituStringStream &is)
 Template function specialization for InsituStringStream.
 
template<>
void SkipWhitespace (StringStream &is)
 Template function specialization for StringStream.
 
template<>
void PutN (GenericStringBuffer< UTF8<> > &stream, char c, size_t n)
 Implement specialized version of PutN() with memset() for better performance.
 
Helper functions for GenericPointer
template<typename T >
T::ValueType & CreateValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & CreateValueByPointer (T &root, const CharType(&source)[N], typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & CreateValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & CreateValueByPointer (DocumentType &document, const CharType(&source)[N])
 
template<typename T >
T::ValueType * GetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer)
 
template<typename T >
const T::ValueType * GetValueByPointer (const T &root, const GenericPointer< typename T::ValueType > &pointer)
 
template<typename T , typename CharType , size_t N>
T::ValueType * GetValueByPointer (T &root, const CharType(&source)[N])
 
template<typename T , typename CharType , size_t N>
const T::ValueType * GetValueByPointer (const T &root, const CharType(&source)[N])
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::ValueType &defaultValue, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::Ch *defaultValue, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, const std::basic_string< typename T::Ch > &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename T2 >
T::ValueType & GetValueByPointerWithDefault (T &root, const GenericPointer< typename T::ValueType > &pointer, T2 defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const typename T::ValueType &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const typename T::Ch *defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], const std::basic_string< typename T::Ch > &defaultValue, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N, typename T2 >
T::ValueType & GetValueByPointerWithDefault (T &root, const CharType(&source)[N], T2 defaultValue, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::ValueType &defaultValue)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::Ch *defaultValue)
 
template<typename DocumentType >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const std::basic_string< typename DocumentType::Ch > &defaultValue)
 
template<typename DocumentType , typename T2 >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, T2 defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const typename DocumentType::ValueType &defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const typename DocumentType::Ch *defaultValue)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], const std::basic_string< typename DocumentType::Ch > &defaultValue)
 
template<typename DocumentType , typename CharType , size_t N, typename T2 >
DocumentType::ValueType & GetValueByPointerWithDefault (DocumentType &document, const CharType(&source)[N], T2 defaultValue)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const typename T::Ch *value, typename T::AllocatorType &a)
 
template<typename T >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, const std::basic_string< typename T::Ch > &value, typename T::AllocatorType &a)
 
template<typename T , typename T2 >
T::ValueType & SetValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, T2 value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const typename T::Ch *value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], const std::basic_string< typename T::Ch > &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N, typename T2 >
T::ValueType & SetValueByPointer (T &root, const CharType(&source)[N], T2 value, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, typename DocumentType::ValueType &value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::ValueType &value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const typename DocumentType::Ch *value)
 
template<typename DocumentType >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, const std::basic_string< typename DocumentType::Ch > &value)
 
template<typename DocumentType , typename T2 >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, T2 value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const typename DocumentType::Ch *value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], const std::basic_string< typename DocumentType::Ch > &value)
 
template<typename DocumentType , typename CharType , size_t N, typename T2 >
DocumentType::ValueType & SetValueByPointer (DocumentType &document, const CharType(&source)[N], T2 value)
 
template<typename T >
T::ValueType & SwapValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer, typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename T , typename CharType , size_t N>
T::ValueType & SwapValueByPointer (T &root, const CharType(&source)[N], typename T::ValueType &value, typename T::AllocatorType &a)
 
template<typename DocumentType >
DocumentType::ValueType & SwapValueByPointer (DocumentType &document, const GenericPointer< typename DocumentType::ValueType > &pointer, typename DocumentType::ValueType &value)
 
template<typename DocumentType , typename CharType , size_t N>
DocumentType::ValueType & SwapValueByPointer (DocumentType &document, const CharType(&source)[N], typename DocumentType::ValueType &value)
 
template<typename T >
bool EraseValueByPointer (T &root, const GenericPointer< typename T::ValueType > &pointer)
 
template<typename T , typename CharType , size_t N>
bool EraseValueByPointer (T &root, const CharType(&source)[N])
 

Detailed Description

main RapidJSON namespace

See also
RAPIDJSON_NAMESPACE

Typedef Documentation

typedef unsigned rapidjson::SizeType

Size type (for string lengths, array sizes, etc.)

RapidJSON uses 32-bit array/string indices even on 64-bit platforms, instead of using size_t. Users may override the SizeType by defining RAPIDJSON_NO_SIZETYPEDEFINE.

Enumeration Type Documentation

Combination of parseFlags.

See also
Reader::Parse, Document::Parse, Document::ParseInsitu, Document::ParseStream
Enumerator
kParseNoFlags 

No flags are set.

kParseInsituFlag 

In-situ(destructive) parsing.

kParseValidateEncodingFlag 

Validate encoding of JSON strings.

kParseIterativeFlag 

Iterative(constant complexity in terms of function call stack size) parsing.

kParseStopWhenDoneFlag 

After parsing a complete JSON root from stream, stop further processing the rest of stream. When this flag is used, parser will not generate kParseErrorDocumentRootNotSingular error.

kParseFullPrecisionFlag 

Parse number in full precision (but slower).

kParseDefaultFlags 

Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS.

Type of JSON value.

Enumerator
kNullType 

null

kFalseType 

false

kTrueType 

true

kObjectType 

object

kArrayType 

array

kStringType 

string

kNumberType 

number

Runtime-specified UTF encoding type of a stream.

Enumerator
kUTF8 

UTF-8.

kUTF16LE 

UTF-16 little endian.

kUTF16BE 

UTF-16 big endian.

kUTF32LE 

UTF-32 little endian.

kUTF32BE 

UTF-32 big endian.

Function Documentation

template<typename InputStream >
void rapidjson::SkipWhitespace ( InputStream &  is)

Skip the JSON white spaces in a stream.

Parameters
isA input stream for skipping white spaces.
Note
This function has SSE2/SSE4.2 specialization.
template<typename CharType >
GenericStringRef< CharType > StringRef ( const CharType *  str)
inline

Mark a character pointer as constant string.

Mark a plain character pointer as a "string literal". This function can be used to avoid copying a character string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

Template Parameters
CharTypeCharacter type of the string
Parameters
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
Returns
GenericStringRef string reference object
See also
GenericValue::GenericValue(StringRefType), GenericValue::operator=(StringRefType), GenericValue::SetString(StringRefType), GenericValue::PushBack(StringRefType, Allocator&), GenericValue::AddMember
template<typename CharType >
GenericStringRef< CharType > StringRef ( const CharType *  str,
size_t  length 
)
inline

Mark a character pointer as constant string.

Mark a plain character pointer as a "string literal". This function can be used to avoid copying a character string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

This version has better performance with supplied length, and also supports string containing null characters.

Template Parameters
CharTypecharacter type of the string
Parameters
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
lengthThe length of source string.
Returns
GenericStringRef string reference object
template<typename CharType >
GenericStringRef< CharType > StringRef ( const std::basic_string< CharType > &  str)
inline

Mark a string object as constant string.

Mark a string object (e.g. std::string) as a "string literal". This function can be used to avoid copying a string to be referenced as a value in a JSON GenericValue object, if the string's lifetime is known to be valid long enough.

Template Parameters
CharTypecharacter type of the string
Parameters
strConstant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
Returns
GenericStringRef string reference object
Note
Requires the definition of the preprocessor symbol RAPIDJSON_HAS_STDSTRING.