You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

json__tokener_8h.html 37 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <title>json-c: json_tokener.h File Reference</title>
  6. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  7. <link href="doxygen.css" rel="stylesheet" type="text/css"/>
  8. </head>
  9. <body>
  10. <!-- Generated by Doxygen 1.6.3 -->
  11. <div class="navigation" id="top">
  12. <div class="tabs">
  13. <ul>
  14. <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
  15. <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  16. <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
  17. <li class="current"><a href="files.html"><span>Files</span></a></li>
  18. </ul>
  19. </div>
  20. <div class="tabs">
  21. <ul>
  22. <li><a href="files.html"><span>File&nbsp;List</span></a></li>
  23. <li><a href="globals.html"><span>Globals</span></a></li>
  24. </ul>
  25. </div>
  26. </div>
  27. <div class="contents">
  28. <h1>json_tokener.h File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
  29. <tr><td colspan="2"><h2>Data Structures</h2></td></tr>
  30. <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a></td></tr>
  31. <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html">json_tokener</a></td></tr>
  32. <tr><td colspan="2"><h2>Defines</h2></td></tr>
  33. <tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#ac4299cf4ed799b028e61cf7b2b0d5f1f">JSON_TOKENER_MAX_DEPTH</a>&nbsp;&nbsp;&nbsp;32</td></tr>
  34. <tr><td colspan="2"><h2>Enumerations</h2></td></tr>
  35. <tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> { <br/>
  36. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener_success</a>,
  37. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener_continue</a>,
  38. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener_error_depth</a>,
  39. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener_error_parse_eof</a>,
  40. <br/>
  41. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener_error_parse_unexpected</a>,
  42. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener_error_parse_null</a>,
  43. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener_error_parse_boolean</a>,
  44. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener_error_parse_number</a>,
  45. <br/>
  46. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener_error_parse_array</a>,
  47. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener_error_parse_object_key_name</a>,
  48. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener_error_parse_object_key_sep</a>,
  49. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener_error_parse_object_value_sep</a>,
  50. <br/>
  51. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener_error_parse_string</a>,
  52. <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener_error_parse_comment</a>
  53. <br/>
  54. }</td></tr>
  55. <tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a> { <br/>
  56. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener_state_eatws</a>,
  57. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener_state_start</a>,
  58. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener_state_finish</a>,
  59. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener_state_null</a>,
  60. <br/>
  61. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener_state_comment_start</a>,
  62. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener_state_comment</a>,
  63. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener_state_comment_eol</a>,
  64. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener_state_comment_end</a>,
  65. <br/>
  66. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener_state_string</a>,
  67. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener_state_string_escape</a>,
  68. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener_state_escape_unicode</a>,
  69. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener_state_boolean</a>,
  70. <br/>
  71. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener_state_number</a>,
  72. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener_state_array</a>,
  73. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener_state_array_add</a>,
  74. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener_state_array_sep</a>,
  75. <br/>
  76. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener_state_object_field_start</a>,
  77. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener_state_object_field</a>,
  78. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener_state_object_field_end</a>,
  79. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener_state_object_value</a>,
  80. <br/>
  81. &nbsp;&nbsp;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener_state_object_value_add</a>,
  82. <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener_state_object_sep</a>
  83. <br/>
  84. }</td></tr>
  85. <tr><td colspan="2"><h2>Functions</h2></td></tr>
  86. <tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener_error_desc</a> (enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> jerr)</td></tr>
  87. <tr><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener_get_error</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
  88. <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a55d6e8a6f6d90992c063a39e21769c52">json_tokener_new</a> (void)</td></tr>
  89. <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#af6645ff27c0ca82c6e314390814fcbeb">json_tokener_free</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
  90. <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#ae23dd7ad4737bfc18409af6173ab2b09">json_tokener_reset</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
  91. <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object.html">json_object</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#abf031fdf1e5caab71e2225a99588c6bb">json_tokener_parse</a> (const char *str)</td></tr>
  92. <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object.html">json_object</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a1c8f5d8baad383dc8879615d2b02b53c">json_tokener_parse_verbose</a> (const char *str, enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> *error)</td></tr>
  93. <tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object.html">json_object</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener_parse_ex</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok, const char *str, int len)</td></tr>
  94. <tr><td colspan="2"><h2>Variables</h2></td></tr>
  95. <tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a6ede8ee7a4ec1fed68d10ea77294c966">json_tokener_errors</a> []</td></tr>
  96. </table>
  97. <hr/><h2>Define Documentation</h2>
  98. <a class="anchor" id="ac4299cf4ed799b028e61cf7b2b0d5f1f"></a><!-- doxytag: member="json_tokener.h::JSON_TOKENER_MAX_DEPTH" ref="ac4299cf4ed799b028e61cf7b2b0d5f1f" args="" -->
  99. <div class="memitem">
  100. <div class="memproto">
  101. <table class="memname">
  102. <tr>
  103. <td class="memname">#define JSON_TOKENER_MAX_DEPTH&nbsp;&nbsp;&nbsp;32</td>
  104. </tr>
  105. </table>
  106. </div>
  107. <div class="memdoc">
  108. </div>
  109. </div>
  110. <hr/><h2>Enumeration Type Documentation</h2>
  111. <a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59"></a><!-- doxytag: member="json_tokener.h::json_tokener_error" ref="a0a31f0df8a532ef8be5c09ba40eacb59" args="" -->
  112. <div class="memitem">
  113. <div class="memproto">
  114. <table class="memname">
  115. <tr>
  116. <td class="memname">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a></td>
  117. </tr>
  118. </table>
  119. </div>
  120. <div class="memdoc">
  121. <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
  122. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0"></a><!-- doxytag: member="json_tokener_success" ref="a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0" args="" -->json_tokener_success</em>&nbsp;</td><td>
  123. </td></tr>
  124. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0"></a><!-- doxytag: member="json_tokener_continue" ref="a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0" args="" -->json_tokener_continue</em>&nbsp;</td><td>
  125. </td></tr>
  126. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c"></a><!-- doxytag: member="json_tokener_error_depth" ref="a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c" args="" -->json_tokener_error_depth</em>&nbsp;</td><td>
  127. </td></tr>
  128. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded"></a><!-- doxytag: member="json_tokener_error_parse_eof" ref="a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded" args="" -->json_tokener_error_parse_eof</em>&nbsp;</td><td>
  129. </td></tr>
  130. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710"></a><!-- doxytag: member="json_tokener_error_parse_unexpected" ref="a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710" args="" -->json_tokener_error_parse_unexpected</em>&nbsp;</td><td>
  131. </td></tr>
  132. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c"></a><!-- doxytag: member="json_tokener_error_parse_null" ref="a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c" args="" -->json_tokener_error_parse_null</em>&nbsp;</td><td>
  133. </td></tr>
  134. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c"></a><!-- doxytag: member="json_tokener_error_parse_boolean" ref="a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c" args="" -->json_tokener_error_parse_boolean</em>&nbsp;</td><td>
  135. </td></tr>
  136. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81"></a><!-- doxytag: member="json_tokener_error_parse_number" ref="a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81" args="" -->json_tokener_error_parse_number</em>&nbsp;</td><td>
  137. </td></tr>
  138. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e"></a><!-- doxytag: member="json_tokener_error_parse_array" ref="a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e" args="" -->json_tokener_error_parse_array</em>&nbsp;</td><td>
  139. </td></tr>
  140. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0"></a><!-- doxytag: member="json_tokener_error_parse_object_key_name" ref="a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0" args="" -->json_tokener_error_parse_object_key_name</em>&nbsp;</td><td>
  141. </td></tr>
  142. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd"></a><!-- doxytag: member="json_tokener_error_parse_object_key_sep" ref="a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd" args="" -->json_tokener_error_parse_object_key_sep</em>&nbsp;</td><td>
  143. </td></tr>
  144. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013"></a><!-- doxytag: member="json_tokener_error_parse_object_value_sep" ref="a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013" args="" -->json_tokener_error_parse_object_value_sep</em>&nbsp;</td><td>
  145. </td></tr>
  146. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7"></a><!-- doxytag: member="json_tokener_error_parse_string" ref="a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7" args="" -->json_tokener_error_parse_string</em>&nbsp;</td><td>
  147. </td></tr>
  148. <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28"></a><!-- doxytag: member="json_tokener_error_parse_comment" ref="a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28" args="" -->json_tokener_error_parse_comment</em>&nbsp;</td><td>
  149. </td></tr>
  150. </table>
  151. </dd>
  152. </dl>
  153. </div>
  154. </div>
  155. <a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2"></a><!-- doxytag: member="json_tokener.h::json_tokener_state" ref="af026dec71e4548e6200eb2f902f1c4e2" args="" -->
  156. <div class="memitem">
  157. <div class="memproto">
  158. <table class="memname">
  159. <tr>
  160. <td class="memname">enum <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a></td>
  161. </tr>
  162. </table>
  163. </div>
  164. <div class="memdoc">
  165. <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
  166. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d"></a><!-- doxytag: member="json_tokener_state_eatws" ref="af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d" args="" -->json_tokener_state_eatws</em>&nbsp;</td><td>
  167. </td></tr>
  168. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72"></a><!-- doxytag: member="json_tokener_state_start" ref="af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72" args="" -->json_tokener_state_start</em>&nbsp;</td><td>
  169. </td></tr>
  170. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2"></a><!-- doxytag: member="json_tokener_state_finish" ref="af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2" args="" -->json_tokener_state_finish</em>&nbsp;</td><td>
  171. </td></tr>
  172. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792"></a><!-- doxytag: member="json_tokener_state_null" ref="af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792" args="" -->json_tokener_state_null</em>&nbsp;</td><td>
  173. </td></tr>
  174. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c"></a><!-- doxytag: member="json_tokener_state_comment_start" ref="af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c" args="" -->json_tokener_state_comment_start</em>&nbsp;</td><td>
  175. </td></tr>
  176. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9"></a><!-- doxytag: member="json_tokener_state_comment" ref="af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9" args="" -->json_tokener_state_comment</em>&nbsp;</td><td>
  177. </td></tr>
  178. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162"></a><!-- doxytag: member="json_tokener_state_comment_eol" ref="af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162" args="" -->json_tokener_state_comment_eol</em>&nbsp;</td><td>
  179. </td></tr>
  180. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1"></a><!-- doxytag: member="json_tokener_state_comment_end" ref="af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1" args="" -->json_tokener_state_comment_end</em>&nbsp;</td><td>
  181. </td></tr>
  182. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65"></a><!-- doxytag: member="json_tokener_state_string" ref="af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65" args="" -->json_tokener_state_string</em>&nbsp;</td><td>
  183. </td></tr>
  184. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e"></a><!-- doxytag: member="json_tokener_state_string_escape" ref="af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e" args="" -->json_tokener_state_string_escape</em>&nbsp;</td><td>
  185. </td></tr>
  186. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0"></a><!-- doxytag: member="json_tokener_state_escape_unicode" ref="af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0" args="" -->json_tokener_state_escape_unicode</em>&nbsp;</td><td>
  187. </td></tr>
  188. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e"></a><!-- doxytag: member="json_tokener_state_boolean" ref="af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e" args="" -->json_tokener_state_boolean</em>&nbsp;</td><td>
  189. </td></tr>
  190. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81"></a><!-- doxytag: member="json_tokener_state_number" ref="af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81" args="" -->json_tokener_state_number</em>&nbsp;</td><td>
  191. </td></tr>
  192. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4"></a><!-- doxytag: member="json_tokener_state_array" ref="af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4" args="" -->json_tokener_state_array</em>&nbsp;</td><td>
  193. </td></tr>
  194. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771"></a><!-- doxytag: member="json_tokener_state_array_add" ref="af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771" args="" -->json_tokener_state_array_add</em>&nbsp;</td><td>
  195. </td></tr>
  196. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865"></a><!-- doxytag: member="json_tokener_state_array_sep" ref="af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865" args="" -->json_tokener_state_array_sep</em>&nbsp;</td><td>
  197. </td></tr>
  198. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29"></a><!-- doxytag: member="json_tokener_state_object_field_start" ref="af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29" args="" -->json_tokener_state_object_field_start</em>&nbsp;</td><td>
  199. </td></tr>
  200. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc"></a><!-- doxytag: member="json_tokener_state_object_field" ref="af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc" args="" -->json_tokener_state_object_field</em>&nbsp;</td><td>
  201. </td></tr>
  202. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7"></a><!-- doxytag: member="json_tokener_state_object_field_end" ref="af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7" args="" -->json_tokener_state_object_field_end</em>&nbsp;</td><td>
  203. </td></tr>
  204. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa"></a><!-- doxytag: member="json_tokener_state_object_value" ref="af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa" args="" -->json_tokener_state_object_value</em>&nbsp;</td><td>
  205. </td></tr>
  206. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162"></a><!-- doxytag: member="json_tokener_state_object_value_add" ref="af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162" args="" -->json_tokener_state_object_value_add</em>&nbsp;</td><td>
  207. </td></tr>
  208. <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215"></a><!-- doxytag: member="json_tokener_state_object_sep" ref="af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215" args="" -->json_tokener_state_object_sep</em>&nbsp;</td><td>
  209. </td></tr>
  210. </table>
  211. </dd>
  212. </dl>
  213. </div>
  214. </div>
  215. <hr/><h2>Function Documentation</h2>
  216. <a class="anchor" id="a04c5625212aed3216cc303429e47f642"></a><!-- doxytag: member="json_tokener.h::json_tokener_error_desc" ref="a04c5625212aed3216cc303429e47f642" args="(enum json_tokener_error jerr)" -->
  217. <div class="memitem">
  218. <div class="memproto">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">const char* json_tokener_error_desc </td>
  222. <td>(</td>
  223. <td class="paramtype">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a>&nbsp;</td>
  224. <td class="paramname"> <em>jerr</em></td>
  225. <td>&nbsp;)&nbsp;</td>
  226. <td></td>
  227. </tr>
  228. </table>
  229. </div>
  230. <div class="memdoc">
  231. <p>Given an error previously returned by <a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener_get_error()</a>, return a human readable description of the error.</p>
  232. <dl class="return"><dt><b>Returns:</b></dt><dd>a generic error message is returned if an invalid error value is provided. </dd></dl>
  233. </div>
  234. </div>
  235. <a class="anchor" id="af6645ff27c0ca82c6e314390814fcbeb"></a><!-- doxytag: member="json_tokener.h::json_tokener_free" ref="af6645ff27c0ca82c6e314390814fcbeb" args="(struct json_tokener *tok)" -->
  236. <div class="memitem">
  237. <div class="memproto">
  238. <table class="memname">
  239. <tr>
  240. <td class="memname">void json_tokener_free </td>
  241. <td>(</td>
  242. <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&nbsp;</td>
  243. <td class="paramname"> <em>tok</em></td>
  244. <td>&nbsp;)&nbsp;</td>
  245. <td></td>
  246. </tr>
  247. </table>
  248. </div>
  249. <div class="memdoc">
  250. </div>
  251. </div>
  252. <a class="anchor" id="ae8dff7f1ea11702aecf418e0da5574fe"></a><!-- doxytag: member="json_tokener.h::json_tokener_get_error" ref="ae8dff7f1ea11702aecf418e0da5574fe" args="(struct json_tokener *tok)" -->
  253. <div class="memitem">
  254. <div class="memproto">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> json_tokener_get_error </td>
  258. <td>(</td>
  259. <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&nbsp;</td>
  260. <td class="paramname"> <em>tok</em></td>
  261. <td>&nbsp;)&nbsp;</td>
  262. <td></td>
  263. </tr>
  264. </table>
  265. </div>
  266. <div class="memdoc">
  267. <p>Retrieve the error caused by the last call to <a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener_parse_ex()</a>, or json_tokener_success if there is no error.</p>
  268. <p>When parsing a JSON string in pieces, if the tokener is in the middle of parsing this will return json_tokener_continue.</p>
  269. <p>See also <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener_error_desc()</a>. </p>
  270. </div>
  271. </div>
  272. <a class="anchor" id="a55d6e8a6f6d90992c063a39e21769c52"></a><!-- doxytag: member="json_tokener.h::json_tokener_new" ref="a55d6e8a6f6d90992c063a39e21769c52" args="(void)" -->
  273. <div class="memitem">
  274. <div class="memproto">
  275. <table class="memname">
  276. <tr>
  277. <td class="memname">struct <a class="el" href="structjson__tokener.html">json_tokener</a>* json_tokener_new </td>
  278. <td>(</td>
  279. <td class="paramtype">void&nbsp;</td>
  280. <td class="paramname"></td>
  281. <td>&nbsp;)&nbsp;</td>
  282. <td><code> [read]</code></td>
  283. </tr>
  284. </table>
  285. </div>
  286. <div class="memdoc">
  287. </div>
  288. </div>
  289. <a class="anchor" id="abf031fdf1e5caab71e2225a99588c6bb"></a><!-- doxytag: member="json_tokener.h::json_tokener_parse" ref="abf031fdf1e5caab71e2225a99588c6bb" args="(const char *str)" -->
  290. <div class="memitem">
  291. <div class="memproto">
  292. <table class="memname">
  293. <tr>
  294. <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse </td>
  295. <td>(</td>
  296. <td class="paramtype">const char *&nbsp;</td>
  297. <td class="paramname"> <em>str</em></td>
  298. <td>&nbsp;)&nbsp;</td>
  299. <td><code> [read]</code></td>
  300. </tr>
  301. </table>
  302. </div>
  303. <div class="memdoc">
  304. </div>
  305. </div>
  306. <a class="anchor" id="a0d9a666c21879647e8831f9cfa691673"></a><!-- doxytag: member="json_tokener.h::json_tokener_parse_ex" ref="a0d9a666c21879647e8831f9cfa691673" args="(struct json_tokener *tok, const char *str, int len)" -->
  307. <div class="memitem">
  308. <div class="memproto">
  309. <table class="memname">
  310. <tr>
  311. <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse_ex </td>
  312. <td>(</td>
  313. <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&nbsp;</td>
  314. <td class="paramname"> <em>tok</em>, </td>
  315. </tr>
  316. <tr>
  317. <td class="paramkey"></td>
  318. <td></td>
  319. <td class="paramtype">const char *&nbsp;</td>
  320. <td class="paramname"> <em>str</em>, </td>
  321. </tr>
  322. <tr>
  323. <td class="paramkey"></td>
  324. <td></td>
  325. <td class="paramtype">int&nbsp;</td>
  326. <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
  327. </tr>
  328. <tr>
  329. <td></td>
  330. <td>)</td>
  331. <td></td><td></td><td><code> [read]</code></td>
  332. </tr>
  333. </table>
  334. </div>
  335. <div class="memdoc">
  336. <p>Parse a string and return a non-NULL <a class="el" href="structjson__object.html">json_object</a> if a valid JSON value is found. The string does not need to be a JSON object or array; it can also be a string, number or boolean value.</p>
  337. <p>A partial JSON string can be parsed. If the parsing is incomplete, NULL will be returned and <a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener_get_error()</a> will be return json_tokener_continue. <a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener_parse_ex()</a> can then be called with additional bytes in str to continue the parsing.</p>
  338. <p>If <a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener_parse_ex()</a> returns NULL and the error anything other than json_tokener_continue, a fatal error has occurred and parsing must be halted. Then tok object must not be re-used until <a class="el" href="json__tokener_8h.html#ae23dd7ad4737bfc18409af6173ab2b09">json_tokener_reset()</a> is called.</p>
  339. <p>When a valid JSON value is parsed, a non-NULL <a class="el" href="structjson__object.html">json_object</a> will be returned. Also, <a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener_get_error()</a> will return json_tokener_success. Be sure to check the type with <a class="el" href="json__object_8h.html#ab6dc8b19f8da310e78f402f83d6ae6c5">json_object_is_type()</a> or <a class="el" href="json__object_8h.html#adc5e998b4897b6e450bd0975a58d2f72">json_object_get_type()</a> before using the object.</p>
  340. <p><b>XXX</b> this shouldn't use internal fields: Trailing characters after the parsed value do not automatically cause an error. It is up to the caller to decide whether to treat this as an error or to handle the additional characters, perhaps by parsing another json value starting from that point.</p>
  341. <p>Extra characters can be detected by comparing the tok-&gt;char_offset against the length of the last len parameter passed in.</p>
  342. <p>The tokener does <b>not</b> maintain an internal buffer so the caller is responsible for calling json_tokener_parse_ex with an appropriate str parameter starting with the extra characters.</p>
  343. <p>Example: </p>
  344. <div class="fragment"><pre class="fragment"><a class="code" href="structjson__object.html">json_object</a> *jobj = NULL;
  345. <span class="keyword">const</span> <span class="keywordtype">char</span> *mystring = NULL;
  346. <span class="keywordtype">int</span> stringlen = 0;
  347. <span class="keyword">enum</span> <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> jerr;
  348. <span class="keywordflow">do</span> {
  349. mystring = ... <span class="comment">// get JSON string, e.g. read from file, etc...</span>
  350. stringlen = strlen(mystring);
  351. jobj = <a class="code" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener_parse_ex</a>(tok, mystring, stringlen);
  352. } <span class="keywordflow">while</span> ((jerr = <a class="code" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener_get_error</a>(tok)) == <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener_continue</a>);
  353. <span class="keywordflow">if</span> (jerr != <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener_success</a>)
  354. {
  355. fprintf(stderr, <span class="stringliteral">&quot;Error: %s\n&quot;</span>, <a class="code" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener_error_desc</a>(jerr));
  356. <span class="comment">// Handle errors, as appropriate for your application.</span>
  357. }
  358. <span class="keywordflow">if</span> (tok-&gt;char_offset &lt; stringlen) <span class="comment">// XXX shouldn&#39;t access internal fields</span>
  359. {
  360. <span class="comment">// Handle extra characters after parsed object as desired.</span>
  361. <span class="comment">// e.g. issue an error, parse another object from that point, etc...</span>
  362. }
  363. <span class="comment">// Success, use jobj here.</span>
  364. </pre></div><dl><dt><b>Parameters:</b></dt><dd>
  365. <table border="0" cellspacing="2" cellpadding="0">
  366. <tr><td valign="top"></td><td valign="top"><em>tok</em>&nbsp;</td><td>a <a class="el" href="structjson__tokener.html">json_tokener</a> previously allocated with <a class="el" href="json__tokener_8h.html#a55d6e8a6f6d90992c063a39e21769c52">json_tokener_new()</a> </td></tr>
  367. <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>an string with any valid JSON expression, or portion of. This does not need to be null terminated. </td></tr>
  368. <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the length of str </td></tr>
  369. </table>
  370. </dd>
  371. </dl>
  372. </div>
  373. </div>
  374. <a class="anchor" id="a1c8f5d8baad383dc8879615d2b02b53c"></a><!-- doxytag: member="json_tokener.h::json_tokener_parse_verbose" ref="a1c8f5d8baad383dc8879615d2b02b53c" args="(const char *str, enum json_tokener_error *error)" -->
  375. <div class="memitem">
  376. <div class="memproto">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse_verbose </td>
  380. <td>(</td>
  381. <td class="paramtype">const char *&nbsp;</td>
  382. <td class="paramname"> <em>str</em>, </td>
  383. </tr>
  384. <tr>
  385. <td class="paramkey"></td>
  386. <td></td>
  387. <td class="paramtype">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> *&nbsp;</td>
  388. <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
  389. </tr>
  390. <tr>
  391. <td></td>
  392. <td>)</td>
  393. <td></td><td></td><td><code> [read]</code></td>
  394. </tr>
  395. </table>
  396. </div>
  397. <div class="memdoc">
  398. </div>
  399. </div>
  400. <a class="anchor" id="ae23dd7ad4737bfc18409af6173ab2b09"></a><!-- doxytag: member="json_tokener.h::json_tokener_reset" ref="ae23dd7ad4737bfc18409af6173ab2b09" args="(struct json_tokener *tok)" -->
  401. <div class="memitem">
  402. <div class="memproto">
  403. <table class="memname">
  404. <tr>
  405. <td class="memname">void json_tokener_reset </td>
  406. <td>(</td>
  407. <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&nbsp;</td>
  408. <td class="paramname"> <em>tok</em></td>
  409. <td>&nbsp;)&nbsp;</td>
  410. <td></td>
  411. </tr>
  412. </table>
  413. </div>
  414. <div class="memdoc">
  415. </div>
  416. </div>
  417. <hr/><h2>Variable Documentation</h2>
  418. <a class="anchor" id="a6ede8ee7a4ec1fed68d10ea77294c966"></a><!-- doxytag: member="json_tokener.h::json_tokener_errors" ref="a6ede8ee7a4ec1fed68d10ea77294c966" args="[]" -->
  419. <div class="memitem">
  420. <div class="memproto">
  421. <table class="memname">
  422. <tr>
  423. <td class="memname">const char* <a class="el" href="json__tokener_8h.html#a6ede8ee7a4ec1fed68d10ea77294c966">json_tokener_errors</a>[]</td>
  424. </tr>
  425. </table>
  426. </div>
  427. <div class="memdoc">
  428. <p><b>XXX</b> do not use json_tokener_errors directly. After v0.10 this will be removed.</p>
  429. <p>See <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener_error_desc()</a> instead. </p>
  430. </div>
  431. </div>
  432. </div>
  433. <hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Apr 28 15:52:47 2012 for json-c by&nbsp;
  434. <a href="http://www.doxygen.org/index.html">
  435. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
  436. </body>
  437. </html>

No Description