summaryrefslogtreecommitdiff
path: root/yajl-2.1.0/yajl__tree_8h.html
diff options
context:
space:
mode:
Diffstat (limited to 'yajl-2.1.0/yajl__tree_8h.html')
-rw-r--r--yajl-2.1.0/yajl__tree_8h.html650
1 files changed, 650 insertions, 0 deletions
diff --git a/yajl-2.1.0/yajl__tree_8h.html b/yajl-2.1.0/yajl__tree_8h.html
new file mode 100644
index 0000000..3d2657b
--- /dev/null
+++ b/yajl-2.1.0/yajl__tree_8h.html
@@ -0,0 +1,650 @@
+<!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.6"/>
+<title>YAJL: yajl_tree.h File Reference</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="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">YAJL
+ &#160;<span id="projectnumber">2.1.0</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_da61e3e9a357748887e3ca8d7c5a0c16.html">api</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">yajl_tree.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;yajl/yajl_common.h&gt;</code><br/>
+</div>
+<p><a href="yajl__tree_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__val__s.html">yajl_val_s</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6b608d94afd51babb28475955c1654c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a6b608d94afd51babb28475955c1654c2">YAJL_NUMBER_INT_VALID</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="separator:a6b608d94afd51babb28475955c1654c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d4c94d04c85385a9650bde767a8311f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a7d4c94d04c85385a9650bde767a8311f">YAJL_NUMBER_DOUBLE_VALID</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="separator:a7d4c94d04c85385a9650bde767a8311f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a839db27ecbbb8d61a699cedbd932132e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a839db27ecbbb8d61a699cedbd932132e">YAJL_IS_STRING</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a8e1c9361f16919197409a226dcad7c65">yajl_t_string</a>))</td></tr>
+<tr class="separator:a839db27ecbbb8d61a699cedbd932132e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1736311b9fac2b19c7726a9dbeb1b39"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#ad1736311b9fac2b19c7726a9dbeb1b39">YAJL_IS_NUMBER</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91abde225a86bb95920a5e1126990634571">yajl_t_number</a>))</td></tr>
+<tr class="separator:ad1736311b9fac2b19c7726a9dbeb1b39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38d048c002ffeeb26afb1a85d4e66ab8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a38d048c002ffeeb26afb1a85d4e66ab8">YAJL_IS_INTEGER</a>(v)&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#ad1736311b9fac2b19c7726a9dbeb1b39">YAJL_IS_NUMBER</a>(v) &amp;&amp; ((v)-&gt;u.number.flags &amp; <a class="el" href="yajl__tree_8h.html#a6b608d94afd51babb28475955c1654c2">YAJL_NUMBER_INT_VALID</a>))</td></tr>
+<tr class="separator:a38d048c002ffeeb26afb1a85d4e66ab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f5b941466aa6fd3b0b1dff5dbb242c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a2f5b941466aa6fd3b0b1dff5dbb242c2">YAJL_IS_DOUBLE</a>(v)&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#ad1736311b9fac2b19c7726a9dbeb1b39">YAJL_IS_NUMBER</a>(v) &amp;&amp; ((v)-&gt;u.number.flags &amp; <a class="el" href="yajl__tree_8h.html#a7d4c94d04c85385a9650bde767a8311f">YAJL_NUMBER_DOUBLE_VALID</a>))</td></tr>
+<tr class="separator:a2f5b941466aa6fd3b0b1dff5dbb242c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addf75553e77877995e78e93644921833"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#addf75553e77877995e78e93644921833">YAJL_IS_OBJECT</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a033cfb2d466cd549f7cc51a9ba5992f2">yajl_t_object</a>))</td></tr>
+<tr class="separator:addf75553e77877995e78e93644921833"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addecd3327906b07a57fb12a67e5dc635"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#addecd3327906b07a57fb12a67e5dc635">YAJL_IS_ARRAY</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab04a6b795fc500d54a3e507571de200e">yajl_t_array</a> ))</td></tr>
+<tr class="separator:addecd3327906b07a57fb12a67e5dc635"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae330b2efd9dbe5746b0d5e6f20cda930"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#ae330b2efd9dbe5746b0d5e6f20cda930">YAJL_IS_TRUE</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a898367bbd0042414c0ba1a266e3a0423">yajl_t_true</a> ))</td></tr>
+<tr class="separator:ae330b2efd9dbe5746b0d5e6f20cda930"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51bc6ecfe5df8a24e7a5c47cec94981b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a51bc6ecfe5df8a24e7a5c47cec94981b">YAJL_IS_FALSE</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a7a517c35ce7754fb57b3e000676b10f9">yajl_t_false</a> ))</td></tr>
+<tr class="separator:a51bc6ecfe5df8a24e7a5c47cec94981b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7d4861ba8a7b71943d948368e02c3da"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#aa7d4861ba8a7b71943d948368e02c3da">YAJL_IS_NULL</a>(v)&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab1bde75d9a3a9f386fdd37262d8d9b25">yajl_t_null</a> ))</td></tr>
+<tr class="separator:aa7d4861ba8a7b71943d948368e02c3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fe1773db524ee1efdad7eb97ce12c18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a2fe1773db524ee1efdad7eb97ce12c18">YAJL_GET_STRING</a>(v)&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#a839db27ecbbb8d61a699cedbd932132e">YAJL_IS_STRING</a>(v) ? (v)-&gt;u.string : NULL)</td></tr>
+<tr class="separator:a2fe1773db524ee1efdad7eb97ce12c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfdffbd514aefd7a2921dbd18b0d8c2c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#acfdffbd514aefd7a2921dbd18b0d8c2c">YAJL_GET_NUMBER</a>(v)&#160;&#160;&#160;((v)-&gt;u.number.r)</td></tr>
+<tr class="separator:acfdffbd514aefd7a2921dbd18b0d8c2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3c2643d3f2b63376dce65fa25e96a93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#aa3c2643d3f2b63376dce65fa25e96a93">YAJL_GET_DOUBLE</a>(v)&#160;&#160;&#160;((v)-&gt;u.number.d)</td></tr>
+<tr class="separator:aa3c2643d3f2b63376dce65fa25e96a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69e47497b26e291bbe11d43d53b8b016"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a69e47497b26e291bbe11d43d53b8b016">YAJL_GET_INTEGER</a>(v)&#160;&#160;&#160;((v)-&gt;u.number.i)</td></tr>
+<tr class="separator:a69e47497b26e291bbe11d43d53b8b016"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f25bc66f657ade894dd6aa0839726f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a8f25bc66f657ade894dd6aa0839726f1">YAJL_GET_OBJECT</a>(v)&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#addf75553e77877995e78e93644921833">YAJL_IS_OBJECT</a>(v) ? &amp;(v)-&gt;u.object : NULL)</td></tr>
+<tr class="separator:a8f25bc66f657ade894dd6aa0839726f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4224514d7e9a5cd43acbe94de5ce9000"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a4224514d7e9a5cd43acbe94de5ce9000">YAJL_GET_ARRAY</a>(v)&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#addecd3327906b07a57fb12a67e5dc635">YAJL_IS_ARRAY</a>(v) ? &amp;(v)-&gt;u.array : NULL)</td></tr>
+<tr class="separator:a4224514d7e9a5cd43acbe94de5ce9000"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:af4f7cb7f0a0f42f6f3d2d2563a4c171c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structyajl__val__s.html">yajl_val_s</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a></td></tr>
+<tr class="separator:af4f7cb7f0a0f42f6f3d2d2563a4c171c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ae95a1d5a195e8bd22a96f69cbf4e7c91"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91">yajl_type</a> { <br/>
+&#160;&#160;<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a8e1c9361f16919197409a226dcad7c65">yajl_t_string</a> = 1,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91abde225a86bb95920a5e1126990634571">yajl_t_number</a> = 2,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a033cfb2d466cd549f7cc51a9ba5992f2">yajl_t_object</a> = 3,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab04a6b795fc500d54a3e507571de200e">yajl_t_array</a> = 4,
+<br/>
+&#160;&#160;<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a898367bbd0042414c0ba1a266e3a0423">yajl_t_true</a> = 5,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a7a517c35ce7754fb57b3e000676b10f9">yajl_t_false</a> = 6,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab1bde75d9a3a9f386fdd37262d8d9b25">yajl_t_null</a> = 7,
+<a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a9f219b51253c2cb0e278cc4ad55b211e">yajl_t_any</a> = 8
+<br/>
+ }</td></tr>
+<tr class="separator:ae95a1d5a195e8bd22a96f69cbf4e7c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6a04342e825859a3e9d52df93e9d112a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> <a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a6a04342e825859a3e9d52df93e9d112a">yajl_tree_parse</a> (const char *input, char *error_buffer, size_t error_buffer_size)</td></tr>
+<tr class="separator:a6a04342e825859a3e9d52df93e9d112a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83b59f411e80404aad35ae7071c4ecf8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a83b59f411e80404aad35ae7071c4ecf8">yajl_tree_free</a> (<a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a> v)</td></tr>
+<tr class="separator:a83b59f411e80404aad35ae7071c4ecf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a534c427581fac81ee828c28367dbe90d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> <a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="yajl__tree_8h.html#a534c427581fac81ee828c28367dbe90d">yajl_tree_get</a> (<a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a> parent, const char **path, <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91">yajl_type</a> type)</td></tr>
+<tr class="separator:a534c427581fac81ee828c28367dbe90d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Parses JSON data and returns the data in tree form.</p>
+<dl class="section author"><dt>Author</dt><dd>Florian Forster </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>August 2010</dd></dl>
+<p>This interface makes quick parsing and extraction of smallish JSON docs trivial:</p>
+<div class="fragment"><div class="line"><span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Copyright (c) 2007-2014, Lloyd Hilaiel &lt;me@lloyd.io&gt;</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any</span></div>
+<div class="line"><span class="comment"> * purpose with or without fee is hereby granted, provided that the above</span></div>
+<div class="line"><span class="comment"> * copyright notice and this permission notice appear in all copies.</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES</span></div>
+<div class="line"><span class="comment"> * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF</span></div>
+<div class="line"><span class="comment"> * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR</span></div>
+<div class="line"><span class="comment"> * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES</span></div>
+<div class="line"><span class="comment"> * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN</span></div>
+<div class="line"><span class="comment"> * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</span></div>
+<div class="line"><span class="comment"> * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#include &quot;yajl/yajl_tree.h&quot;</span></div>
+<div class="line"></div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> fileData[65536];</div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">int</span></div>
+<div class="line">main(<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordtype">size_t</span> rd;</div>
+<div class="line"> <a class="code" href="structyajl__val__s.html">yajl_val</a> node;</div>
+<div class="line"> <span class="keywordtype">char</span> errbuf[1024];</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* null plug buffers */</span></div>
+<div class="line"> fileData[0] = errbuf[0] = 0;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* read the entire config file */</span></div>
+<div class="line"> rd = fread((<span class="keywordtype">void</span> *) fileData, 1, <span class="keyword">sizeof</span>(fileData) - 1, stdin);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* file read error handling */</span></div>
+<div class="line"> <span class="keywordflow">if</span> (rd == 0 &amp;&amp; !feof(stdin)) {</div>
+<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;error encountered on file read\n&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">return</span> 1;</div>
+<div class="line"> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rd &gt;= <span class="keyword">sizeof</span>(fileData) - 1) {</div>
+<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;config file too big\n&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">return</span> 1;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* we have the whole config file in memory. let&#39;s parse it ... */</span></div>
+<div class="line"> node = <a class="code" href="yajl__tree_8h.html#a6a04342e825859a3e9d52df93e9d112a">yajl_tree_parse</a>((<span class="keyword">const</span> <span class="keywordtype">char</span> *) fileData, errbuf, <span class="keyword">sizeof</span>(errbuf));</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* parse error handling */</span></div>
+<div class="line"> <span class="keywordflow">if</span> (node == NULL) {</div>
+<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;parse_error: &quot;</span>);</div>
+<div class="line"> <span class="keywordflow">if</span> (strlen(errbuf)) fprintf(stderr, <span class="stringliteral">&quot; %s&quot;</span>, errbuf);</div>
+<div class="line"> <span class="keywordflow">else</span> fprintf(stderr, <span class="stringliteral">&quot;unknown error&quot;</span>);</div>
+<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div>
+<div class="line"> <span class="keywordflow">return</span> 1;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/* ... and extract a nested value from the config file */</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> * path[] = { <span class="stringliteral">&quot;Logging&quot;</span>, <span class="stringliteral">&quot;timeFormat&quot;</span>, (<span class="keyword">const</span> <span class="keywordtype">char</span> *) 0 };</div>
+<div class="line"> <a class="code" href="structyajl__val__s.html">yajl_val</a> v = <a class="code" href="yajl__tree_8h.html#a534c427581fac81ee828c28367dbe90d">yajl_tree_get</a>(node, path, <a class="code" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a8e1c9361f16919197409a226dcad7c65">yajl_t_string</a>);</div>
+<div class="line"> <span class="keywordflow">if</span> (v) printf(<span class="stringliteral">&quot;%s/%s: %s\n&quot;</span>, path[0], path[1], <a class="code" href="yajl__tree_8h.html#a2fe1773db524ee1efdad7eb97ce12c18">YAJL_GET_STRING</a>(v));</div>
+<div class="line"> <span class="keywordflow">else</span> printf(<span class="stringliteral">&quot;no such node: %s/%s\n&quot;</span>, path[0], path[1]);</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <a class="code" href="yajl__tree_8h.html#a83b59f411e80404aad35ae7071c4ecf8">yajl_tree_free</a>(node);</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a4224514d7e9a5cd43acbe94de5ce9000"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_ARRAY</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#addecd3327906b07a57fb12a67e5dc635">YAJL_IS_ARRAY</a>(v) ? &amp;(v)-&gt;u.array : NULL)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get a pointer to a yajl_val_array or NULL if the value is not an object. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa3c2643d3f2b63376dce65fa25e96a93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_DOUBLE</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;((v)-&gt;u.number.d)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get the double representation of a number. You should check type first, perhaps using YAJL_IS_DOUBLE </p>
+
+</div>
+</div>
+<a class="anchor" id="a69e47497b26e291bbe11d43d53b8b016"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_INTEGER</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;((v)-&gt;u.number.i)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get the 64bit (long long) integer representation of a number. You should check type first, perhaps using YAJL_IS_INTEGER </p>
+
+</div>
+</div>
+<a class="anchor" id="acfdffbd514aefd7a2921dbd18b0d8c2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_NUMBER</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;((v)-&gt;u.number.r)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get the string representation of a number. You should check type first, perhaps using YAJL_IS_NUMBER </p>
+
+</div>
+</div>
+<a class="anchor" id="a8f25bc66f657ade894dd6aa0839726f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_OBJECT</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#addf75553e77877995e78e93644921833">YAJL_IS_OBJECT</a>(v) ? &amp;(v)-&gt;u.object : NULL)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get a pointer to a yajl_val_object or NULL if the value is not an object. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2fe1773db524ee1efdad7eb97ce12c18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_GET_STRING</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#a839db27ecbbb8d61a699cedbd932132e">YAJL_IS_STRING</a>(v) ? (v)-&gt;u.string : NULL)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Given a yajl_val_string return a ptr to the bare string it contains, or NULL if the value is not a string. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_2parse_config_8c-example.html#a4">example/parse_config.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="addecd3327906b07a57fb12a67e5dc635"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_ARRAY</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab04a6b795fc500d54a3e507571de200e">yajl_t_array</a> ))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f5b941466aa6fd3b0b1dff5dbb242c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_DOUBLE</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#ad1736311b9fac2b19c7726a9dbeb1b39">YAJL_IS_NUMBER</a>(v) &amp;&amp; ((v)-&gt;u.number.flags &amp; <a class="el" href="yajl__tree_8h.html#a7d4c94d04c85385a9650bde767a8311f">YAJL_NUMBER_DOUBLE_VALID</a>))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a51bc6ecfe5df8a24e7a5c47cec94981b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_FALSE</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a7a517c35ce7754fb57b3e000676b10f9">yajl_t_false</a> ))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a38d048c002ffeeb26afb1a85d4e66ab8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_INTEGER</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(<a class="el" href="yajl__tree_8h.html#ad1736311b9fac2b19c7726a9dbeb1b39">YAJL_IS_NUMBER</a>(v) &amp;&amp; ((v)-&gt;u.number.flags &amp; <a class="el" href="yajl__tree_8h.html#a6b608d94afd51babb28475955c1654c2">YAJL_NUMBER_INT_VALID</a>))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7d4861ba8a7b71943d948368e02c3da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_NULL</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91ab1bde75d9a3a9f386fdd37262d8d9b25">yajl_t_null</a> ))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1736311b9fac2b19c7726a9dbeb1b39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_NUMBER</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91abde225a86bb95920a5e1126990634571">yajl_t_number</a>))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="addf75553e77877995e78e93644921833"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_OBJECT</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a033cfb2d466cd549f7cc51a9ba5992f2">yajl_t_object</a>))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a839db27ecbbb8d61a699cedbd932132e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_STRING</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a8e1c9361f16919197409a226dcad7c65">yajl_t_string</a>))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae330b2efd9dbe5746b0d5e6f20cda930"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_IS_TRUE</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">v</td><td>)</td>
+ <td>&#160;&#160;&#160;(((v) != NULL) &amp;&amp; ((v)-&gt;type == <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91a898367bbd0042414c0ba1a266e3a0423">yajl_t_true</a> ))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7d4c94d04c85385a9650bde767a8311f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_NUMBER_DOUBLE_VALID&#160;&#160;&#160;0x02</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b608d94afd51babb28475955c1654c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define YAJL_NUMBER_INT_VALID&#160;&#160;&#160;0x01</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="af4f7cb7f0a0f42f6f3d2d2563a4c171c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct <a class="el" href="structyajl__val__s.html">yajl_val_s</a>* <a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A pointer to a node in the parse tree </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91">yajl_type</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>possible data types that a <a class="el" href="structyajl__val__s.html">yajl_val_s</a> can hold </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91a8e1c9361f16919197409a226dcad7c65"></a>yajl_t_string</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91abde225a86bb95920a5e1126990634571"></a>yajl_t_number</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91a033cfb2d466cd549f7cc51a9ba5992f2"></a>yajl_t_object</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91ab04a6b795fc500d54a3e507571de200e"></a>yajl_t_array</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91a898367bbd0042414c0ba1a266e3a0423"></a>yajl_t_true</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91a7a517c35ce7754fb57b3e000676b10f9"></a>yajl_t_false</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91ab1bde75d9a3a9f386fdd37262d8d9b25"></a>yajl_t_null</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ae95a1d5a195e8bd22a96f69cbf4e7c91a9f219b51253c2cb0e278cc4ad55b211e"></a>yajl_t_any</em>&#160;</td><td class="fielddoc">
+<p>The any type isn't valid for <a class="el" href="structyajl__val__s.html#a5286ed2abc22873bc8c077097f7ea150">yajl_val_s.type</a>, but can be used as an argument to routines like <a class="el" href="yajl__tree_8h.html#a534c427581fac81ee828c28367dbe90d">yajl_tree_get()</a>. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a83b59f411e80404aad35ae7071c4ecf8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> void yajl_tree_free </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a>&#160;</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Free a parse tree returned by "yajl_tree_parse".</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">v</td><td>Pointer to a JSON value returned by "yajl_tree_parse". Passing NULL is valid and results in a no-op. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_2parse_config_8c-example.html#a5">example/parse_config.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a534c427581fac81ee828c28367dbe90d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> <a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a> yajl_tree_get </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a>&#160;</td>
+ <td class="paramname"><em>parent</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char **&#160;</td>
+ <td class="paramname"><em>path</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="yajl__tree_8h.html#ae95a1d5a195e8bd22a96f69cbf4e7c91">yajl_type</a>&#160;</td>
+ <td class="paramname"><em>type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access a nested value inside a tree.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">parent</td><td>the node under which you'd like to extract values. </td></tr>
+ <tr><td class="paramname">path</td><td>A null terminated array of strings, each the name of an object key </td></tr>
+ <tr><td class="paramname">type</td><td>the yajl_type of the object you seek, or yajl_t_any if any will do.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a pointer to the found value, or NULL if we came up empty.</dd></dl>
+<p>Future Ideas: it'd be nice to move path to a string and implement support for a teeny tiny micro language here, so you can extract array elements, do things like .first and .last, even .length. Inspiration from JSONPath and css selectors? No it wouldn't be fast, but that's not what this API is about. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_2parse_config_8c-example.html#a2">example/parse_config.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a6a04342e825859a3e9d52df93e9d112a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="yajl__common_8h.html#a112d9a9234313b4fa3d419c0723146c5">YAJL_API</a> <a class="el" href="yajl__tree_8h.html#af4f7cb7f0a0f42f6f3d2d2563a4c171c">yajl_val</a> yajl_tree_parse </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>input</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>error_buffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>error_buffer_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Parse a string.</p>
+<p>Parses an null-terminated string containing JSON data and returns a pointer to the top-level value (root of the parse tree).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">input</td><td>Pointer to a null-terminated utf8 string containing JSON data. </td></tr>
+ <tr><td class="paramname">error_buffer</td><td>Pointer to a buffer in which an error message will be stored if <em>yajl_tree_parse</em> fails, or <code>NULL</code>. The buffer will be initialized before parsing, so its content will be destroyed even if <em>yajl_tree_parse</em> succeeds. </td></tr>
+ <tr><td class="paramname">error_buffer_size</td><td>Size of the memory area pointed to by <em>error_buffer_size</em>. If <em>error_buffer_size</em> is <code>NULL</code>, this argument is ignored.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Pointer to the top-level value or <code>NULL</code> on error. The memory pointed to must be freed using <em>yajl_tree_free</em>. In case of an error, a null terminated message describing the error in more detail is stored in <em>error_buffer</em> if it is not <code>NULL</code>. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="example_2parse_config_8c-example.html#a1">example/parse_config.c</a>.</dd>
+</dl>
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Mar 18 2014 22:12:15 for YAJL by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>