<!-- HTML header for doxygen 1.8.7--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <title>RapidJSON: rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > 模板类 参考</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { init_search(); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygenextra.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="topbanner"><a href="https://github.com/miloyip/rapidjson" title="RapidJSON GitHub"><i class="githublogo"></i></a></div> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="搜索" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> <!-- end header part --> <!-- 制作者 Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'搜索'); </script> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('classrapidjson_1_1_writer.html','');}); </script> <div id="doc-content"> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">类</a> | <a href="#pub-types">Public 类型</a> | <a href="#pub-methods">Public 成员函数</a> | <a href="#pub-static-attribs">静态 Public 属性</a> | <a href="#pro-methods">Protected 成员函数</a> | <a href="#pro-attribs">Protected 属性</a> | <a href="#pro-static-attribs">静态 Protected 属性</a> | <a href="classrapidjson_1_1_writer-members.html">所有成员列表</a> </div> <div class="headertitle"> <div class="title">rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > 模板类 参考</div> </div> </div><!--header--> <div class="contents"> <p>JSON writer <a href="classrapidjson_1_1_writer.html#details">更多...</a></p> <p><code>#include <<a class="el" href="writer_8h_source.html">writer.h</a>></code></p> <div class="dynheader"> 类 rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > 继承关系图:</div> <div class="dyncontent"> <div class="center"> <img src="classrapidjson_1_1_writer.png" usemap="#rapidjson::Writer_3C_20OutputStream_2C_20SourceEncoding_2C_20TargetEncoding_2C_20StackAllocator_2C_20writeFlags_20_3E_map" alt=""/> <map id="rapidjson::Writer_3C_20OutputStream_2C_20SourceEncoding_2C_20TargetEncoding_2C_20StackAllocator_2C_20writeFlags_20_3E_map" name="rapidjson::Writer_3C_20OutputStream_2C_20SourceEncoding_2C_20TargetEncoding_2C_20StackAllocator_2C_20writeFlags_20_3E_map"> <area href="classrapidjson_1_1_pretty_writer.html" title="Writer with indentation and spacing. " alt="rapidjson::PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >" shape="rect" coords="0,56,596,80"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> 类</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_writer_1_1_level.html">Level</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Information for each nested level <a href="structrapidjson_1_1_writer_1_1_level.html#details">更多...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public 类型</h2></td></tr> <tr class="memitem:a2cf973937ca1110293bf1350fac2a6d6"><td class="memItemLeft" align="right" valign="top"><a id="a2cf973937ca1110293bf1350fac2a6d6"></a> typedef SourceEncoding::Ch </td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr> <tr class="separator:a2cf973937ca1110293bf1350fac2a6d6"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public 成员函数</h2></td></tr> <tr class="memitem:a98a421c806b456688874511f64add1f2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#a98a421c806b456688874511f64add1f2">Writer</a> (OutputStream &os, StackAllocator *stackAllocator=0, size_t levelDepth=kDefaultLevelDepth)</td></tr> <tr class="memdesc:a98a421c806b456688874511f64add1f2"><td class="mdescLeft"> </td><td class="mdescRight">Constructor <a href="#a98a421c806b456688874511f64add1f2">更多...</a><br /></td></tr> <tr class="separator:a98a421c806b456688874511f64add1f2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2e78f43b2395d7ecb0d9a284659d59fb"><td class="memItemLeft" align="right" valign="top"><a id="a2e78f43b2395d7ecb0d9a284659d59fb"></a>  </td><td class="memItemRight" valign="bottom"><b>Writer</b> (StackAllocator *allocator=0, size_t levelDepth=kDefaultLevelDepth)</td></tr> <tr class="separator:a2e78f43b2395d7ecb0d9a284659d59fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac4026d3f14b80d6d7fc10004b1972722"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#ac4026d3f14b80d6d7fc10004b1972722">Reset</a> (OutputStream &os)</td></tr> <tr class="memdesc:ac4026d3f14b80d6d7fc10004b1972722"><td class="mdescLeft"> </td><td class="mdescRight">Reset the writer with a new stream. <a href="#ac4026d3f14b80d6d7fc10004b1972722">更多...</a><br /></td></tr> <tr class="separator:ac4026d3f14b80d6d7fc10004b1972722"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a190d964d3e62155e87153e858a0b04da"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#a190d964d3e62155e87153e858a0b04da">IsComplete</a> () const</td></tr> <tr class="memdesc:a190d964d3e62155e87153e858a0b04da"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the output is a complete JSON. <a href="#a190d964d3e62155e87153e858a0b04da">更多...</a><br /></td></tr> <tr class="separator:a190d964d3e62155e87153e858a0b04da"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa436d23d8227c270a9a5297a6dbc0674"><td class="memItemLeft" align="right" valign="top"><a id="aa436d23d8227c270a9a5297a6dbc0674"></a> int </td><td class="memItemRight" valign="bottom"><b>GetMaxDecimalPlaces</b> () const</td></tr> <tr class="separator:aa436d23d8227c270a9a5297a6dbc0674"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa7b6967dc237519e2a6d8b3939fb9634"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#aa7b6967dc237519e2a6d8b3939fb9634">SetMaxDecimalPlaces</a> (int maxDecimalPlaces)</td></tr> <tr class="memdesc:aa7b6967dc237519e2a6d8b3939fb9634"><td class="mdescLeft"> </td><td class="mdescRight">Sets the maximum number of decimal places for double output. <a href="#aa7b6967dc237519e2a6d8b3939fb9634">更多...</a><br /></td></tr> <tr class="separator:aa7b6967dc237519e2a6d8b3939fb9634"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8acb89b2bbb1e5f384e6076b65044dbe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#a8acb89b2bbb1e5f384e6076b65044dbe">RawValue</a> (const Ch *json, size_t length, <a class="el" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> type)</td></tr> <tr class="memdesc:a8acb89b2bbb1e5f384e6076b65044dbe"><td class="mdescLeft"> </td><td class="mdescRight">Write a raw JSON value. <a href="#a8acb89b2bbb1e5f384e6076b65044dbe">更多...</a><br /></td></tr> <tr class="separator:a8acb89b2bbb1e5f384e6076b65044dbe"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader">Implementation of Handler</div></td></tr> <tr><td colspan="2"><div class="groupText"><dl class="section see"><dt>参见</dt><dd><a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a> </dd></dl> </div></td></tr> <tr class="memitem:a1e857b9fe7071fc0b9fa89b56ad05651"><td class="memItemLeft" align="right" valign="top"><a id="a1e857b9fe7071fc0b9fa89b56ad05651"></a> bool </td><td class="memItemRight" valign="bottom"><b>Null</b> ()</td></tr> <tr class="separator:a1e857b9fe7071fc0b9fa89b56ad05651"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afd055764da99bd167b030c19104b107a"><td class="memItemLeft" align="right" valign="top"><a id="afd055764da99bd167b030c19104b107a"></a> bool </td><td class="memItemRight" valign="bottom"><b>Bool</b> (bool b)</td></tr> <tr class="separator:afd055764da99bd167b030c19104b107a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a22fd25fb5cb2db6c25762961e51e9c46"><td class="memItemLeft" align="right" valign="top"><a id="a22fd25fb5cb2db6c25762961e51e9c46"></a> bool </td><td class="memItemRight" valign="bottom"><b>Int</b> (int i)</td></tr> <tr class="separator:a22fd25fb5cb2db6c25762961e51e9c46"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a49f2dd265ab15ee065f0506a8d3efac9"><td class="memItemLeft" align="right" valign="top"><a id="a49f2dd265ab15ee065f0506a8d3efac9"></a> bool </td><td class="memItemRight" valign="bottom"><b>Uint</b> (unsigned u)</td></tr> <tr class="separator:a49f2dd265ab15ee065f0506a8d3efac9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae11f678a8f363b690629f53bdf33b5af"><td class="memItemLeft" align="right" valign="top"><a id="ae11f678a8f363b690629f53bdf33b5af"></a> bool </td><td class="memItemRight" valign="bottom"><b>Int64</b> (int64_t i64)</td></tr> <tr class="separator:ae11f678a8f363b690629f53bdf33b5af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76e9e1271747e3fd5e0d665da69f1de7"><td class="memItemLeft" align="right" valign="top"><a id="a76e9e1271747e3fd5e0d665da69f1de7"></a> bool </td><td class="memItemRight" valign="bottom"><b>Uint64</b> (uint64_t u64)</td></tr> <tr class="separator:a76e9e1271747e3fd5e0d665da69f1de7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aff66881798d01e932a0b8b8ef97b0373"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#aff66881798d01e932a0b8b8ef97b0373">Double</a> (double d)</td></tr> <tr class="memdesc:aff66881798d01e932a0b8b8ef97b0373"><td class="mdescLeft"> </td><td class="mdescRight">Writes the given <code>double</code> value to the stream <a href="#aff66881798d01e932a0b8b8ef97b0373">更多...</a><br /></td></tr> <tr class="separator:aff66881798d01e932a0b8b8ef97b0373"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a65a378b4de5df3fb02521a4a78b25230"><td class="memItemLeft" align="right" valign="top"><a id="a65a378b4de5df3fb02521a4a78b25230"></a> bool </td><td class="memItemRight" valign="bottom"><b>RawNumber</b> (const Ch *str, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length, bool copy=false)</td></tr> <tr class="separator:a65a378b4de5df3fb02521a4a78b25230"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3cddcb5176054f559d0d552a3ff8789b"><td class="memItemLeft" align="right" valign="top"><a id="a3cddcb5176054f559d0d552a3ff8789b"></a> bool </td><td class="memItemRight" valign="bottom"><b>String</b> (const Ch *str, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length, bool copy=false)</td></tr> <tr class="separator:a3cddcb5176054f559d0d552a3ff8789b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08e5ea94699a727a24123737927514ee"><td class="memItemLeft" align="right" valign="top"><a id="a08e5ea94699a727a24123737927514ee"></a> bool </td><td class="memItemRight" valign="bottom"><b>String</b> (const std::basic_string< Ch > &str)</td></tr> <tr class="separator:a08e5ea94699a727a24123737927514ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8b0be54744be8ecb53cbe7e408447faa"><td class="memItemLeft" align="right" valign="top"><a id="a8b0be54744be8ecb53cbe7e408447faa"></a> bool </td><td class="memItemRight" valign="bottom"><b>StartObject</b> ()</td></tr> <tr class="separator:a8b0be54744be8ecb53cbe7e408447faa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a58ecbfbe9f86e5303448f2b8024cbd46"><td class="memItemLeft" align="right" valign="top"><a id="a58ecbfbe9f86e5303448f2b8024cbd46"></a> bool </td><td class="memItemRight" valign="bottom"><b>Key</b> (const Ch *str, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length, bool copy=false)</td></tr> <tr class="separator:a58ecbfbe9f86e5303448f2b8024cbd46"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac8851882467c9c00cd8c2a202261e2b0"><td class="memItemLeft" align="right" valign="top"><a id="ac8851882467c9c00cd8c2a202261e2b0"></a> bool </td><td class="memItemRight" valign="bottom"><b>EndObject</b> (<a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> memberCount=0)</td></tr> <tr class="separator:ac8851882467c9c00cd8c2a202261e2b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7019d2c81548f7b4dcc96f98a3e2bf76"><td class="memItemLeft" align="right" valign="top"><a id="a7019d2c81548f7b4dcc96f98a3e2bf76"></a> bool </td><td class="memItemRight" valign="bottom"><b>StartArray</b> ()</td></tr> <tr class="separator:a7019d2c81548f7b4dcc96f98a3e2bf76"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a13c98a10c8a8be0823c6cfd8e1b479a4"><td class="memItemLeft" align="right" valign="top"><a id="a13c98a10c8a8be0823c6cfd8e1b479a4"></a> bool </td><td class="memItemRight" valign="bottom"><b>EndArray</b> (<a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> elementCount=0)</td></tr> <tr class="separator:a13c98a10c8a8be0823c6cfd8e1b479a4"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader">Convenience extensions</div></td></tr> <tr class="memitem:a67e6df516d54a56b025d1015fa67111f"><td class="memItemLeft" align="right" valign="top"><a id="a67e6df516d54a56b025d1015fa67111f"></a> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_writer.html#a67e6df516d54a56b025d1015fa67111f">String</a> (const Ch *str)</td></tr> <tr class="memdesc:a67e6df516d54a56b025d1015fa67111f"><td class="mdescLeft"> </td><td class="mdescRight">Simpler but slower overload. <br /></td></tr> <tr class="separator:a67e6df516d54a56b025d1015fa67111f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a70fe1aa8437bc5e1525a2a0a69105c24"><td class="memItemLeft" align="right" valign="top"><a id="a70fe1aa8437bc5e1525a2a0a69105c24"></a> bool </td><td class="memItemRight" valign="bottom"><b>Key</b> (const Ch *str)</td></tr> <tr class="separator:a70fe1aa8437bc5e1525a2a0a69105c24"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a> 静态 Public 属性</h2></td></tr> <tr class="memitem:aaf9568d23fcff10e6de27dde77e28547"><td class="memItemLeft" align="right" valign="top"><a id="aaf9568d23fcff10e6de27dde77e28547"></a> static const int </td><td class="memItemRight" valign="bottom"><b>kDefaultMaxDecimalPlaces</b> = 324</td></tr> <tr class="separator:aaf9568d23fcff10e6de27dde77e28547"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected 成员函数</h2></td></tr> <tr class="memitem:af8275fa2332a8c7774aa4c8a3655afd5"><td class="memItemLeft" align="right" valign="top"><a id="af8275fa2332a8c7774aa4c8a3655afd5"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteNull</b> ()</td></tr> <tr class="separator:af8275fa2332a8c7774aa4c8a3655afd5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a09c1a50dd2d6de4e8d59e6c8ecf62460"><td class="memItemLeft" align="right" valign="top"><a id="a09c1a50dd2d6de4e8d59e6c8ecf62460"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteBool</b> (bool b)</td></tr> <tr class="separator:a09c1a50dd2d6de4e8d59e6c8ecf62460"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aca40d77c14bf6911c03b5d4b23283e02"><td class="memItemLeft" align="right" valign="top"><a id="aca40d77c14bf6911c03b5d4b23283e02"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteInt</b> (int i)</td></tr> <tr class="separator:aca40d77c14bf6911c03b5d4b23283e02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9255fff8cc9476048f14a1ee7dbd9937"><td class="memItemLeft" align="right" valign="top"><a id="a9255fff8cc9476048f14a1ee7dbd9937"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteUint</b> (unsigned u)</td></tr> <tr class="separator:a9255fff8cc9476048f14a1ee7dbd9937"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aada3d510b7637fd0e9e8b3cbad093c2e"><td class="memItemLeft" align="right" valign="top"><a id="aada3d510b7637fd0e9e8b3cbad093c2e"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteInt64</b> (int64_t i64)</td></tr> <tr class="separator:aada3d510b7637fd0e9e8b3cbad093c2e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a341c2665f6564467dab9787bbbaee2fe"><td class="memItemLeft" align="right" valign="top"><a id="a341c2665f6564467dab9787bbbaee2fe"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteUint64</b> (uint64_t u64)</td></tr> <tr class="separator:a341c2665f6564467dab9787bbbaee2fe"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad8cdd06dfdf1731a2148e859b828979c"><td class="memItemLeft" align="right" valign="top"><a id="ad8cdd06dfdf1731a2148e859b828979c"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteDouble</b> (double d)</td></tr> <tr class="separator:ad8cdd06dfdf1731a2148e859b828979c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a95860b89f9a9eea9d4336f0023c497ce"><td class="memItemLeft" align="right" valign="top"><a id="a95860b89f9a9eea9d4336f0023c497ce"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteString</b> (const Ch *str, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length)</td></tr> <tr class="separator:a95860b89f9a9eea9d4336f0023c497ce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d5599f972475793e391559db2de1061"><td class="memItemLeft" align="right" valign="top"><a id="a2d5599f972475793e391559db2de1061"></a> bool </td><td class="memItemRight" valign="bottom"><b>ScanWriteUnescapedString</b> (<a class="el" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>< SourceEncoding > &is, size_t length)</td></tr> <tr class="separator:a2d5599f972475793e391559db2de1061"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aed07aaa7245d5e607933a75c634921f9"><td class="memItemLeft" align="right" valign="top"><a id="aed07aaa7245d5e607933a75c634921f9"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteStartObject</b> ()</td></tr> <tr class="separator:aed07aaa7245d5e607933a75c634921f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afc5bc83bdf5fda810c8fe200cdda12b5"><td class="memItemLeft" align="right" valign="top"><a id="afc5bc83bdf5fda810c8fe200cdda12b5"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteEndObject</b> ()</td></tr> <tr class="separator:afc5bc83bdf5fda810c8fe200cdda12b5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1221be4404ddaddc9605725e69dc7e53"><td class="memItemLeft" align="right" valign="top"><a id="a1221be4404ddaddc9605725e69dc7e53"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteStartArray</b> ()</td></tr> <tr class="separator:a1221be4404ddaddc9605725e69dc7e53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60939802ba2dfdd19754f20bda553a26"><td class="memItemLeft" align="right" valign="top"><a id="a60939802ba2dfdd19754f20bda553a26"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteEndArray</b> ()</td></tr> <tr class="separator:a60939802ba2dfdd19754f20bda553a26"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60b50a90fa1cfd525e14c37c36b9998d"><td class="memItemLeft" align="right" valign="top"><a id="a60b50a90fa1cfd525e14c37c36b9998d"></a> bool </td><td class="memItemRight" valign="bottom"><b>WriteRawValue</b> (const Ch *json, size_t length)</td></tr> <tr class="separator:a60b50a90fa1cfd525e14c37c36b9998d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aefe33eab3521b2d9366dff3b788f0665"><td class="memItemLeft" align="right" valign="top"><a id="aefe33eab3521b2d9366dff3b788f0665"></a> void </td><td class="memItemRight" valign="bottom"><b>Prefix</b> (<a class="el" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> type)</td></tr> <tr class="separator:aefe33eab3521b2d9366dff3b788f0665"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adca78a0b05864d1c903f9afa955f3b07"><td class="memItemLeft" align="right" valign="top"><a id="adca78a0b05864d1c903f9afa955f3b07"></a> bool </td><td class="memItemRight" valign="bottom"><b>EndValue</b> (bool ret)</td></tr> <tr class="separator:adca78a0b05864d1c903f9afa955f3b07"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab2ccb801bfd355ecc03a3a3ba5eb7392"><td class="memTemplParams" colspan="2"><a id="ab2ccb801bfd355ecc03a3a3ba5eb7392"></a> template<> </td></tr> <tr class="memitem:ab2ccb801bfd355ecc03a3a3ba5eb7392"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><b>WriteInt</b> (int i)</td></tr> <tr class="separator:ab2ccb801bfd355ecc03a3a3ba5eb7392"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab7c08a743fff55d9f09dc58f0a75e67f"><td class="memTemplParams" colspan="2"><a id="ab7c08a743fff55d9f09dc58f0a75e67f"></a> template<> </td></tr> <tr class="memitem:ab7c08a743fff55d9f09dc58f0a75e67f"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><b>WriteUint</b> (unsigned u)</td></tr> <tr class="separator:ab7c08a743fff55d9f09dc58f0a75e67f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a91d238a4532d08363f97f37d3626632b"><td class="memTemplParams" colspan="2"><a id="a91d238a4532d08363f97f37d3626632b"></a> template<> </td></tr> <tr class="memitem:a91d238a4532d08363f97f37d3626632b"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><b>WriteInt64</b> (int64_t i64)</td></tr> <tr class="separator:a91d238a4532d08363f97f37d3626632b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a474abb8f7b704f1ef7c00bbe2a2e01b6"><td class="memTemplParams" colspan="2"><a id="a474abb8f7b704f1ef7c00bbe2a2e01b6"></a> template<> </td></tr> <tr class="memitem:a474abb8f7b704f1ef7c00bbe2a2e01b6"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><b>WriteUint64</b> (uint64_t u)</td></tr> <tr class="separator:a474abb8f7b704f1ef7c00bbe2a2e01b6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7d18f380070f825f48a494c8213adf9c"><td class="memTemplParams" colspan="2"><a id="a7d18f380070f825f48a494c8213adf9c"></a> template<> </td></tr> <tr class="memitem:a7d18f380070f825f48a494c8213adf9c"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><b>WriteDouble</b> (double d)</td></tr> <tr class="separator:a7d18f380070f825f48a494c8213adf9c"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected 属性</h2></td></tr> <tr class="memitem:a1370d3fd6728d4f0b3f20d734bb27eaf"><td class="memItemLeft" align="right" valign="top"><a id="a1370d3fd6728d4f0b3f20d734bb27eaf"></a> OutputStream * </td><td class="memItemRight" valign="bottom"><b>os_</b></td></tr> <tr class="separator:a1370d3fd6728d4f0b3f20d734bb27eaf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a939007778b53074132750d9eccfdc5a2"><td class="memItemLeft" align="right" valign="top"><a id="a939007778b53074132750d9eccfdc5a2"></a> internal::Stack< StackAllocator > </td><td class="memItemRight" valign="bottom"><b>level_stack_</b></td></tr> <tr class="separator:a939007778b53074132750d9eccfdc5a2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4666542e7957218d23c2a1b68c7295d8"><td class="memItemLeft" align="right" valign="top"><a id="a4666542e7957218d23c2a1b68c7295d8"></a> int </td><td class="memItemRight" valign="bottom"><b>maxDecimalPlaces_</b></td></tr> <tr class="separator:a4666542e7957218d23c2a1b68c7295d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac374605d753f26912b8462fc478e4b3e"><td class="memItemLeft" align="right" valign="top"><a id="ac374605d753f26912b8462fc478e4b3e"></a> bool </td><td class="memItemRight" valign="bottom"><b>hasRoot_</b></td></tr> <tr class="separator:ac374605d753f26912b8462fc478e4b3e"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a> 静态 Protected 属性</h2></td></tr> <tr class="memitem:a9acc453af3bfddea0bf001e022ae411c"><td class="memItemLeft" align="right" valign="top"><a id="a9acc453af3bfddea0bf001e022ae411c"></a> static const size_t </td><td class="memItemRight" valign="bottom"><b>kDefaultLevelDepth</b> = 32</td></tr> <tr class="separator:a9acc453af3bfddea0bf001e022ae411c"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">详细描述</h2> <div class="textblock"><h3>template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags><br /> class rapidjson::Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags ></h3> <p>JSON writer </p> <p><a class="el" href="classrapidjson_1_1_writer.html" title="JSON writer ">Writer</a> implements the concept <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a>. It generates JSON text by events to an output os.</p> <p>User may programmatically calls the functions of a writer to generate JSON text.</p> <p>On the other side, a writer can also be passed to objects that generates events,</p> <p>for example <a class="el" href="classrapidjson_1_1_generic_reader.html#ac9c540b77de19661f6f45e04b9b0937b" title="Parse JSON text. ">Reader::Parse()</a> and <a class="el" href="classrapidjson_1_1_generic_value.html#ad3ebfa73796f4db4836ec47c2261700c" title="Generate events of this value to a Handler. ">Document::Accept()</a>.</p> <dl class="tparams"><dt>模板参数</dt><dd> <table class="tparams"> <tr><td class="paramname">OutputStream</td><td>Type of output stream. </td></tr> <tr><td class="paramname">SourceEncoding</td><td><a class="el" href="classrapidjson_1_1_encoding.html" title="Concept for encoding of Unicode characters. ">Encoding</a> of source string. </td></tr> <tr><td class="paramname">TargetEncoding</td><td><a class="el" href="classrapidjson_1_1_encoding.html" title="Concept for encoding of Unicode characters. ">Encoding</a> of output stream. </td></tr> <tr><td class="paramname">StackAllocator</td><td>Type of allocator for allocating memory of stack. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a> concept </dd></dl> </div><h2 class="groupheader">构造及析构函数说明</h2> <a id="a98a421c806b456688874511f64add1f2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a98a421c806b456688874511f64add1f2">◆ </a></span>Writer()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::<a class="el" href="classrapidjson_1_1_writer.html">Writer</a> </td> <td>(</td> <td class="paramtype">OutputStream & </td> <td class="paramname"><em>os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">StackAllocator * </td> <td class="paramname"><em>stackAllocator</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>levelDepth</em> = <code>kDefaultLevelDepth</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Constructor </p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">os</td><td>Output stream. </td></tr> <tr><td class="paramname">stackAllocator</td><td>User supplied allocator. If it is null, it will create a private one. </td></tr> <tr><td class="paramname">levelDepth</td><td>Initial capacity of stack. </td></tr> </table> </dd> </dl> </div> </div> <h2 class="groupheader">成员函数说明</h2> <a id="aff66881798d01e932a0b8b8ef97b0373"></a> <h2 class="memtitle"><span class="permalink"><a href="#aff66881798d01e932a0b8b8ef97b0373">◆ </a></span>Double()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Double </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>d</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Writes the given <code>double</code> value to the stream </p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">d</td><td>The value to be written. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>返回</dt><dd>Whether it is succeed. </dd></dl> </div> </div> <a id="a190d964d3e62155e87153e858a0b04da"></a> <h2 class="memtitle"><span class="permalink"><a href="#a190d964d3e62155e87153e858a0b04da">◆ </a></span>IsComplete()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::IsComplete </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Checks whether the output is a complete JSON. </p> <p>A complete JSON has a complete root object or array. </p> </div> </div> <a id="a8acb89b2bbb1e5f384e6076b65044dbe"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8acb89b2bbb1e5f384e6076b65044dbe">◆ </a></span>RawValue()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::RawValue </td> <td>(</td> <td class="paramtype">const Ch * </td> <td class="paramname"><em>json</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> </td> <td class="paramname"><em>type</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Write a raw JSON value. </p> <p>For user to write a stringified JSON as a value.</p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">json</td><td>A well-formed JSON value. It should not contain null character within [0, length - 1] range. </td></tr> <tr><td class="paramname">length</td><td>Length of the json. </td></tr> <tr><td class="paramname">type</td><td>Type of the root of json. </td></tr> </table> </dd> </dl> </div> </div> <a id="ac4026d3f14b80d6d7fc10004b1972722"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac4026d3f14b80d6d7fc10004b1972722">◆ </a></span>Reset()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Reset </td> <td>(</td> <td class="paramtype">OutputStream & </td> <td class="paramname"><em>os</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Reset the writer with a new stream. </p> <p>This function reset the writer with a new stream and default settings, in order to make a <a class="el" href="classrapidjson_1_1_writer.html" title="JSON writer ">Writer</a> object reusable for output multiple JSONs.</p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">os</td><td>New output stream. <div class="fragment"><div class="line">Writer<OutputStream> writer(os1);</div><div class="line">writer.StartObject();</div><div class="line"><span class="comment">// ...</span></div><div class="line">writer.EndObject();</div><div class="line"></div><div class="line">writer.Reset(os2);</div><div class="line">writer.StartObject();</div><div class="line"><span class="comment">// ...</span></div><div class="line">writer.EndObject();</div></div><!-- fragment --> </td></tr> </table> </dd> </dl> </div> </div> <a id="aa7b6967dc237519e2a6d8b3939fb9634"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa7b6967dc237519e2a6d8b3939fb9634">◆ </a></span>SetMaxDecimalPlaces()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classrapidjson_1_1_writer.html">rapidjson::Writer</a>< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::SetMaxDecimalPlaces </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>maxDecimalPlaces</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Sets the maximum number of decimal places for double output. </p> <p>This setting truncates the output with specified number of decimal places.</p> <p>For example,</p> <div class="fragment"><div class="line">writer.SetMaxDecimalPlaces(3);</div><div class="line">writer.StartArray();</div><div class="line">writer.Double(0.12345); <span class="comment">// "0.123"</span></div><div class="line">writer.Double(0.0001); <span class="comment">// "0.0"</span></div><div class="line">writer.Double(1.234567890123456e30); <span class="comment">// "1.234567890123456e30" (do not truncate significand for positive exponent)</span></div><div class="line">writer.Double(1.23e-4); <span class="comment">// "0.0" (do truncate significand for negative exponent)</span></div><div class="line">writer.EndArray();</div></div><!-- fragment --><p>The default setting does not truncate any decimal places. You can restore to this setting by calling </p><div class="fragment"><div class="line">writer.SetMaxDecimalPlaces(Writer::kDefaultMaxDecimalPlaces);</div></div><!-- fragment --> </div> </div> <hr/>该类的文档由以下文件生成:<ul> <li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li> <li>include/rapidjson/<a class="el" href="writer_8h_source.html">writer.h</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- HTML footer for doxygen 1.8.7--> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="namespacerapidjson.html">rapidjson</a></li><li class="navelem"><a class="el" href="classrapidjson_1_1_writer.html">Writer</a></li> </ul> </div> </body> </html>