<!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"/> <title>Wt: JSON Library (Wt::Json)</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> </head> <body> <div id="top"><!-- do not remove this div! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Wt  <span id="projectnumber">3.2.3</span> </div> </td> </tr> </tbody> </table> </div> <!-- Generated by Doxygen 1.7.5.1 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <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="Search" 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> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">JSON Library (Wt::Json)</div> </div> </div> <div class="contents"> <p>A JSON representation and parsing library. <a href="#details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Json_1_1Array.html">Wt::Json::Array</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A JSON array. <a href="classWt_1_1Json_1_1Array.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Json_1_1Object.html">Wt::Json::Object</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A JSON object. <a href="classWt_1_1Json_1_1Object.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Json_1_1ParseError.html">Wt::Json::ParseError</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A parse error. <a href="classWt_1_1Json_1_1ParseError.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Json_1_1Value.html">Wt::Json::Value</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A JSON value. <a href="classWt_1_1Json_1_1Value.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Json_1_1TypeException.html">Wt::Json::TypeException</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Exception that indicates a type error. <a href="classWt_1_1Json_1_1TypeException.html#details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__json.html#ga9952f308537fd1bea762f1bd114fd5c0">Wt::Json::Type</a> { <br/>   <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0ad9f53f81b36049511b71b094f6f1ed33">Wt::Json::NullType</a>, <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0a113d10e88eba44ad0deedaa1e3cd42bb">Wt::Json::StringType</a>, <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0a7340a85b621237525000bc8eaa63c296">Wt::Json::BoolType</a>, <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0a178a1c36b90e58cf065dbb1bbb243d32">Wt::Json::NumberType</a>, <br/>   <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0a3fb5937a14d2855a08ad36542c222791">Wt::Json::ObjectType</a>, <a class="el" href="group__json.html#gga9952f308537fd1bea762f1bd114fd5c0a7a82f1b8afcdc842e9e9b783cb66157e">Wt::Json::ArrayType</a> <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumeration for the type of a JSON value. <a href="group__json.html#ga9952f308537fd1bea762f1bd114fd5c0">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">WT_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__json.html#ga3e87c721522c671af2a426718ee5a4f8">Wt::Json::parse</a> (const std::string &input, Value &result, bool validateUTF8=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse function. <a href="#ga3e87c721522c671af2a426718ee5a4f8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">WT_API bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__json.html#ga9ca745cea9545f132a80d9c0c036ad7c">Wt::Json::parse</a> (const std::string &input, Value &result, ParseError &error, bool validateUTF8=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse function. <a href="#ga9ca745cea9545f132a80d9c0c036ad7c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">WT_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__json.html#ga1c8efa66c36c7a1d667000c1289e23f8">Wt::Json::parse</a> (const std::string &input, Object &result, bool validateUTF8=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse function. <a href="#ga1c8efa66c36c7a1d667000c1289e23f8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">WT_API bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__json.html#ga6389caaae31f9e46d3d8880d7b4e3dd9">Wt::Json::parse</a> (const std::string &input, Object &result, ParseError &error, bool validateUTF8=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse function. <a href="#ga6389caaae31f9e46d3d8880d7b4e3dd9"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>A JSON representation and parsing library. </p> <p>The JSON library contains data types to represent a JSON data structure (<a class="el" href="classWt_1_1Json_1_1Value.html" title="A JSON value.">Value</a>, <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a> and <a class="el" href="classWt_1_1Json_1_1Array.html" title="A JSON array.">Array</a>), and a JSON parser.</p> <p>Usage example: </p> <div class="fragment"><pre class="fragment"> Json::Object result; <a class="code" href="group__json.html#ga3e87c721522c671af2a426718ee5a4f8" title="Parse function.">Json::parse</a>(<span class="stringliteral">"{ "</span> <span class="stringliteral">" \"a\": \"That's great\", "</span> <span class="stringliteral">" \"b\": true "</span> <span class="stringliteral">"}"</span>, result); std::cerr << <span class="stringliteral">"Size: "</span> << result.size(); << std::endl; <span class="comment">// Size: 2</span> WString s = result.get(<span class="stringliteral">"a"</span>); <span class="keywordtype">bool</span> b = result.get(<span class="stringliteral">"b"</span>); std::cerr << <span class="stringliteral">"a: "</span> << s << <span class="stringliteral">", b: "</span> << b << std::endl; <span class="comment">// a: That's great, b: true</span> </pre></div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ga9952f308537fd1bea762f1bd114fd5c0"></a><!-- doxytag: member="Wt::Json::Type" ref="ga9952f308537fd1bea762f1bd114fd5c0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__json.html#ga9952f308537fd1bea762f1bd114fd5c0">Wt::Json::Type</a></td> </tr> </table> </div> <div class="memdoc"> <p>Enumeration for the type of a JSON value. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Json_1_1Value.html#a7dae7abf48498249738f2a73254e36cc" title="Returns the type.">Value::type()</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0ad9f53f81b36049511b71b094f6f1ed33"></a><!-- doxytag: member="NullType" ref="gga9952f308537fd1bea762f1bd114fd5c0ad9f53f81b36049511b71b094f6f1ed33" args="" -->NullType</em> </td><td> <p>"null" or missing value </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0a113d10e88eba44ad0deedaa1e3cd42bb"></a><!-- doxytag: member="StringType" ref="gga9952f308537fd1bea762f1bd114fd5c0a113d10e88eba44ad0deedaa1e3cd42bb" args="" -->StringType</em> </td><td> <p>a (unicode) string </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0a7340a85b621237525000bc8eaa63c296"></a><!-- doxytag: member="BoolType" ref="gga9952f308537fd1bea762f1bd114fd5c0a7340a85b621237525000bc8eaa63c296" args="" -->BoolType</em> </td><td> <p>"true" or "false" </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0a178a1c36b90e58cf065dbb1bbb243d32"></a><!-- doxytag: member="NumberType" ref="gga9952f308537fd1bea762f1bd114fd5c0a178a1c36b90e58cf065dbb1bbb243d32" args="" -->NumberType</em> </td><td> <p>a number (integer or floating point) </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0a3fb5937a14d2855a08ad36542c222791"></a><!-- doxytag: member="ObjectType" ref="gga9952f308537fd1bea762f1bd114fd5c0a3fb5937a14d2855a08ad36542c222791" args="" -->ObjectType</em> </td><td> <p>an <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a> </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga9952f308537fd1bea762f1bd114fd5c0a7a82f1b8afcdc842e9e9b783cb66157e"></a><!-- doxytag: member="ArrayType" ref="gga9952f308537fd1bea762f1bd114fd5c0a7a82f1b8afcdc842e9e9b783cb66157e" args="" -->ArrayType</em> </td><td> <p>an <a class="el" href="classWt_1_1Json_1_1Array.html" title="A JSON array.">Array</a> </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga3e87c721522c671af2a426718ee5a4f8"></a><!-- doxytag: member="Wt::Json::parse" ref="ga3e87c721522c671af2a426718ee5a4f8" args="(const std::string &input, Value &result, bool validateUTF8=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Json::parse </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Value & </td> <td class="paramname"><em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>validateUTF8</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parse function. </p> <p>This function parses the input string (which represents a UTF-8 JSON-encoded data structure) into the <code>result</code> value. On success, the result value contains either an <a class="el" href="classWt_1_1Json_1_1Array.html" title="A JSON array.">Array</a> or <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a>.</p> <p>If validateUTF8 is true, the parser will sanitize (security scan for invalid UTF-8) the UTF-8 input string before parsing starts.</p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="classWt_1_1Json_1_1ParseError.html" title="A parse error.">ParseError</a></td><td>when the input is not a correct JSON structure. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga9ca745cea9545f132a80d9c0c036ad7c"></a><!-- doxytag: member="Wt::Json::parse" ref="ga9ca745cea9545f132a80d9c0c036ad7c" args="(const std::string &input, Value &result, ParseError &error, bool validateUTF8=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Wt::Json::parse </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Value & </td> <td class="paramname"><em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ParseError & </td> <td class="paramname"><em>error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>validateUTF8</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parse function. </p> <p>This function parses the input string (which represents a UTF-8 JSON-encoded data structure) into the <code>result</code> value. On success, the result value contains either an <a class="el" href="classWt_1_1Json_1_1Array.html" title="A JSON array.">Array</a> or <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a>.</p> <p>If validateUTF8 is true, the parser will sanitize (security scan for invalid UTF-8) the UTF-8 input string before parsing starts.</p> <p>This method returns <code>true</code> if the parse was succesful, or reports an error in into the <code>error</code> value otherwise. </p> </div> </div> <a class="anchor" id="ga1c8efa66c36c7a1d667000c1289e23f8"></a><!-- doxytag: member="Wt::Json::parse" ref="ga1c8efa66c36c7a1d667000c1289e23f8" args="(const std::string &input, Object &result, bool validateUTF8=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Json::parse </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Object & </td> <td class="paramname"><em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>validateUTF8</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parse function. </p> <p>This function parses the input string (which represents a UTF-8 JSON-encoded data structure) into the <code>result</code> object.</p> <p>If validateUTF8 is true, the parser will sanitize (security scan for invalid UTF-8) the UTF-8 input string before parsing starts.</p> <dl><dt><b>Exceptions:</b></dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="classWt_1_1Json_1_1ParseError.html" title="A parse error.">ParseError</a></td><td>when the input is not a correct JSON structure. </td></tr> <tr><td class="paramname"><a class="el" href="classWt_1_1Json_1_1TypeException.html" title="Exception that indicates a type error.">TypeException</a></td><td>when the JSON structure does not represent an <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a>. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga6389caaae31f9e46d3d8880d7b4e3dd9"></a><!-- doxytag: member="Wt::Json::parse" ref="ga6389caaae31f9e46d3d8880d7b4e3dd9" args="(const std::string &input, Object &result, ParseError &error, bool validateUTF8=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Wt::Json::parse </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Object & </td> <td class="paramname"><em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ParseError & </td> <td class="paramname"><em>error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>validateUTF8</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parse function. </p> <p>This function parses the input string (which represents a UTF-8 JSON-encoded data structure) into the <code>result</code> value. On success, the result value contains either an <a class="el" href="classWt_1_1Json_1_1Array.html" title="A JSON array.">Array</a> or <a class="el" href="classWt_1_1Json_1_1Object.html" title="A JSON object.">Object</a>.</p> <p>If validateUTF8 is true, the parser will sanitize (security scan for invalid UTF-8) the UTF-8 input string before parsing starts.</p> <p>This method returns <code>true</code> if the parse was succesful, or reports an error in into the <code>error</code> value otherwise. </p> </div> </div> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a></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> <hr size="1"><address style="text-align: right; margin: 3px"><small> Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the C++ Web Toolkit (Wt)</a> by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" border="0" style="vertical-align: middle; display: inline-block; height: 2em"></a> 1.7.5.1</small></address> </body> </html>