全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator > 模板类 参考

JSON writer. 更多...

#include <writer.h>

类 rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator > 继承关系图:
rapidjson::PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >

struct  Level
 Information for each nested level. 更多...
 

Public 类型

typedef SourceEncoding::Ch Ch
 

Public 成员函数

 Writer (OutputStream &os, StackAllocator *stackAllocator=0, size_t levelDepth=kDefaultLevelDepth)
 Constructor. 更多...
 
 Writer (StackAllocator *allocator=0, size_t levelDepth=kDefaultLevelDepth)
 
void Reset (OutputStream &os)
 Reset the writer with a new stream. 更多...
 
bool IsComplete () const
 Checks whether the output is a complete JSON. 更多...
 
Implementation of Handler
参见
Handler
bool Null ()
 
bool Bool (bool b)
 
bool Int (int i)
 
bool Uint (unsigned u)
 
bool Int64 (int64_t i64)
 
bool Uint64 (uint64_t u64)
 
bool Double (double d)
 Writes the given double value to the stream. 更多...
 
bool String (const Ch *str, SizeType length, bool copy=false)
 
bool StartObject ()
 
bool Key (const Ch *str, SizeType length, bool copy=false)
 
bool EndObject (SizeType memberCount=0)
 
bool StartArray ()
 
bool EndArray (SizeType elementCount=0)
 
Convenience extensions
bool String (const Ch *str)
 Simpler but slower overload.
 
bool Key (const Ch *str)
 

Protected 成员函数

bool WriteNull ()
 
bool WriteBool (bool b)
 
bool WriteInt (int i)
 
bool WriteUint (unsigned u)
 
bool WriteInt64 (int64_t i64)
 
bool WriteUint64 (uint64_t u64)
 
bool WriteDouble (double d)
 
bool WriteString (const Ch *str, SizeType length)
 
bool WriteStartObject ()
 
bool WriteEndObject ()
 
bool WriteStartArray ()
 
bool WriteEndArray ()
 
void Prefix (Type type)
 
template<>
bool WriteInt (int i)
 
template<>
bool WriteUint (unsigned u)
 
template<>
bool WriteInt64 (int64_t i64)
 
template<>
bool WriteUint64 (uint64_t u)
 
template<>
bool WriteDouble (double d)
 

Protected 属性

OutputStream * os_
 
internal::Stack< StackAllocator > level_stack_
 
bool hasRoot_
 

静态 Protected 属性

static const size_t kDefaultLevelDepth = 32
 

详细描述

template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator>
class rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >

JSON writer.

Writer implements the concept Handler. It generates JSON text by events to an output os.

User may programmatically calls the functions of a writer to generate JSON text.

On the other side, a writer can also be passed to objects that generates events,

for example Reader::Parse() and Document::Accept().

模板参数
OutputStreamType of output stream.
SourceEncodingEncoding of source string.
TargetEncodingEncoding of output stream.
StackAllocatorType of allocator for allocating memory of stack.
注解
implements Handler concept

构造及析构函数说明

template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator>
rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >::Writer ( OutputStream &  os,
StackAllocator *  stackAllocator = 0,
size_t  levelDepth = kDefaultLevelDepth 
)
inlineexplicit

Constructor.

参数
osOutput stream.
stackAllocatorUser supplied allocator. If it is null, it will create a private one.
levelDepthInitial capacity of stack.

成员函数说明

template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator>
bool rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >::Double ( double  d)
inline

Writes the given double value to the stream.

参数
dThe value to be written.
返回
Whether it is succeed.
template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator>
bool rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >::IsComplete ( ) const
inline

Checks whether the output is a complete JSON.

A complete JSON has a complete root object or array.

template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator>
void rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator >::Reset ( OutputStream &  os)
inline

Reset the writer with a new stream.

This function reset the writer with a new stream and default settings, in order to make a Writer object reusable for output multiple JSONs.

参数
osNew output stream.
Writer<OutputStream> writer(os1);
writer.StartObject();
// ...
writer.EndObject();
writer.Reset(os2);
writer.StartObject();
// ...
writer.EndObject();

该类的文档由以下文件生成: