Initial Import
[profile/ivi/json-glib.git] / doc / reference / html / JsonReader.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>JsonReader</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
8 <link rel="up" href="ch02.html" title="Parser">
9 <link rel="prev" href="JsonParser.html" title="JsonParser">
10 <link rel="next" href="JsonPath.html" title="JsonPath">
11 <meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="JsonParser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">JSON-GLib Reference Manual</th>
21 <td><a accesskey="n" href="JsonPath.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#JsonReader.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#JsonReader.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#JsonReader.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#JsonReader.properties" class="shortcut">Properties</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="JsonReader"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="JsonReader.top_of_page"></a>JsonReader</span></h2>
38 <p>JsonReader — A cursor-based parser</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="JsonReader.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">struct              <a class="link" href="JsonReader.html#JsonReader-struct" title="struct JsonReader">JsonReader</a>;
45 struct              <a class="link" href="JsonReader.html#JsonReaderClass" title="struct JsonReaderClass">JsonReaderClass</a>;
46 <a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *        <a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a>                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
47 <span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
48                                                          <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);
49
50 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a>            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
51                                                          <em class="parameter"><code><span class="type">guint</span> index_</code></em>);
52 <span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a>             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
53 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
54 <span class="returnvalue">gint</span>                <a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a>          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
55
56 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a>             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
57                                                          <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);
58 <span class="returnvalue">void</span>                <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a>              (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
59 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
60 <span class="returnvalue">gint</span>                <a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a>           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
61 <span class="returnvalue">gchar</span> **            <a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a>            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
62 const <span class="returnvalue">gchar</span> *       <a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a>         (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
63
64 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a>                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
65 <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          <a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
66 <span class="returnvalue">gint64</span>              <a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a>           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
67 <span class="returnvalue">gdouble</span>             <a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a>        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
68 const <span class="returnvalue">gchar</span> *       <a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a>        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
69 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a>       (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
70 <span class="returnvalue">gboolean</span>            <a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a>          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
71
72 enum                <a class="link" href="JsonReader.html#JsonReaderError" title="enum JsonReaderError">JsonReaderError</a>;
73 #define             <a class="link" href="JsonReader.html#JSON-READER-ERROR:CAPS" title="JSON_READER_ERROR">JSON_READER_ERROR</a>
74 const <span class="returnvalue">GError</span> *      <a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a>               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);
75 </pre>
76 </div>
77 <div class="refsect1">
78 <a name="JsonReader.object-hierarchy"></a><h2>Object Hierarchy</h2>
79 <pre class="synopsis">
80   GObject
81    +----JsonReader
82 </pre>
83 </div>
84 <div class="refsect1">
85 <a name="JsonReader.properties"></a><h2>Properties</h2>
86 <pre class="synopsis">
87   "<a class="link" href="JsonReader.html#JsonReader--root" title='The "root" property'>root</a>"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write / Construct
88 </pre>
89 </div>
90 <div class="refsect1">
91 <a name="JsonReader.description"></a><h2>Description</h2>
92 <p>
93 <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> provides a simple, cursor-based API for parsing a JSON DOM. It
94 is similar, in spirit, to the XML Reader API.
95 </p>
96 <p>
97 In case of error, <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be set in an error state; all subsequent
98 calls will simply be ignored until a function that resets the error state is
99 called, e.g.:
100 </p>
101 <p>
102 </p>
103 <div class="informalexample">
104   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
105     <tbody>
106       <tr>
107         <td class="listing_lines" align="right"><pre>1
108 2
109 3
110 4
111 5
112 6
113 7
114 8
115 9
116 10
117 11
118 12</pre></td>
119         <td class="listing_code"><pre class="programlisting"><span class="comment">/* ask for the 7th element; if the element does not exist, the</span>
120 <span class="comment"> * reader will be put in an error state</span>
121 <span class="comment"> */</span>
122 <span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">6</span><span class="symbol">);</span>
123
124 <span class="comment">/* in case of error, this will return NULL, otherwise it will</span>
125 <span class="comment"> * return the value of the element</span>
126 <span class="comment"> */</span>
127 <span class="normal">str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">);</span>
128
129 <span class="comment">/* this function resets the error state if any was set */</span>
130 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
131       </tr>
132     </tbody>
133   </table>
134 </div>
135
136 <p>
137 </p>
138 <p>
139 If you want to detect the error state as soon as possible, you can use
140 <a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()"><code class="function">json_reader_get_error()</code></a>:
141 </p>
142 <p>
143 </p>
144 <div class="informalexample">
145   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
146     <tbody>
147       <tr>
148         <td class="listing_lines" align="right"><pre>1
149 2
150 3
151 4
152 5
153 6
154 7
155 8</pre></td>
156         <td class="listing_code"><pre class="programlisting"><span class="comment">/* like the example above, but in this case we print out the</span>
157 <span class="comment"> * error immediately</span>
158 <span class="comment"> */</span>
159 <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">6</span><span class="symbol">))</span>
160 <span class="normal">  </span><span class="cbracket">{</span>
161 <span class="normal">    </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-error">json_reader_get_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
162 <span class="normal">    </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Unable to read the element: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
163 <span class="normal">  </span><span class="cbracket">}</span></pre></td>
164       </tr>
165     </tbody>
166   </table>
167 </div>
168
169 <p>
170 </p>
171 <p>
172 <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is available since JSON-GLib 0.12.
173 </p>
174 </div>
175 <div class="refsect1">
176 <a name="JsonReader.details"></a><h2>Details</h2>
177 <div class="refsect2">
178 <a name="JsonReader-struct"></a><h3>struct JsonReader</h3>
179 <pre class="programlisting">struct JsonReader;</pre>
180 <p>
181 The <span class="structname">JsonReader</span> structure contains only
182 private data and should only be accessed using the provided API
183 </p>
184 <p class="since">Since 0.12</p>
185 </div>
186 <hr>
187 <div class="refsect2">
188 <a name="JsonReaderClass"></a><h3>struct JsonReaderClass</h3>
189 <pre class="programlisting">struct JsonReaderClass {
190 };
191 </pre>
192 <p>
193 The <span class="structname">JsonReaderClass</span> structure contains only
194 private data
195 </p>
196 <p class="since">Since 0.12</p>
197 </div>
198 <hr>
199 <div class="refsect2">
200 <a name="json-reader-new"></a><h3>json_reader_new ()</h3>
201 <pre class="programlisting"><a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *        json_reader_new                     (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
202 <p>
203 Creates a new <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. You can use this object to read the contents of
204 the JSON tree starting from <em class="parameter"><code>node</code></em>
205 </p>
206 <div class="variablelist"><table border="0">
207 <col align="left" valign="top">
208 <tbody>
209 <tr>
210 <td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
211 <td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
212 </td>
213 </tr>
214 <tr>
215 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
216 <td>the newly created <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>. Use <code class="function">g_object_unref()</code> to
217 release the allocated resources when done</td>
218 </tr>
219 </tbody>
220 </table></div>
221 <p class="since">Since 0.12</p>
222 </div>
223 <hr>
224 <div class="refsect2">
225 <a name="json-reader-set-root"></a><h3>json_reader_set_root ()</h3>
226 <pre class="programlisting"><span class="returnvalue">void</span>                json_reader_set_root                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
227                                                          <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
228 <p>
229 Sets the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> to be read by <em class="parameter"><code>reader</code></em>. The <em class="parameter"><code>reader</code></em> will take
230 a copy of <em class="parameter"><code>root</code></em>
231 </p>
232 <p>
233 If another <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> is currently set as root, it will be replaced.
234 </p>
235 <div class="variablelist"><table border="0">
236 <col align="left" valign="top">
237 <tbody>
238 <tr>
239 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
240 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
241 </td>
242 </tr>
243 <tr>
244 <td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td>
245 <td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
246 </td>
247 </tr>
248 </tbody>
249 </table></div>
250 <p class="since">Since 0.12</p>
251 </div>
252 <hr>
253 <div class="refsect2">
254 <a name="json-reader-read-element"></a><h3>json_reader_read_element ()</h3>
255 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_read_element            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
256                                                          <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
257 <p>
258 Advances the cursor of <em class="parameter"><code>reader</code></em> to the element <em class="parameter"><code>index_</code></em> of the array
259 or the object at the current position.
260 </p>
261 <p>
262 You can use the json_reader_get_value* family of functions to retrieve
263 the value of the element; for instance:
264 </p>
265 <p>
266 </p>
267 <div class="informalexample">
268   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
269     <tbody>
270       <tr>
271         <td class="listing_lines" align="right"><pre>1
272 2</pre></td>
273         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
274 <span class="normal">int_value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-int-value">json_reader_get_int_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
275       </tr>
276     </tbody>
277   </table>
278 </div>
279
280 <p>
281 </p>
282 <p>
283 After reading the value, <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> should be called to
284 reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:
285 </p>
286 <p>
287 </p>
288 <div class="informalexample">
289   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
290     <tbody>
291       <tr>
292         <td class="listing_lines" align="right"><pre>1
293 2
294 3
295 4
296 5
297 6
298 7</pre></td>
299         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
300 <span class="normal">str_value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
301 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
302
303 <span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">);</span>
304 <span class="normal">str_value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
305 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
306       </tr>
307     </tbody>
308   </table>
309 </div>
310
311 <p>
312 </p>
313 <p>
314 If <em class="parameter"><code>reader</code></em> is not currently on an array or an object, or if the <em class="parameter"><code>index_</code></em> is
315 bigger than the size of the array or the object, the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be
316 put in an error state until <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> is called.
317 </p>
318 <div class="variablelist"><table border="0">
319 <col align="left" valign="top">
320 <tbody>
321 <tr>
322 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
323 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
324 </td>
325 </tr>
326 <tr>
327 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
328 <td>the index of the element</td>
329 </tr>
330 <tr>
331 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
332 <td>
333 <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</td>
334 </tr>
335 </tbody>
336 </table></div>
337 <p class="since">Since 0.12</p>
338 </div>
339 <hr>
340 <div class="refsect2">
341 <a name="json-reader-end-element"></a><h3>json_reader_end_element ()</h3>
342 <pre class="programlisting"><span class="returnvalue">void</span>                json_reader_end_element             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
343 <p>
344 Moves the cursor back to the previous node after being positioned
345 inside an array
346 </p>
347 <p>
348 This function resets the error state of <em class="parameter"><code>reader</code></em>, if any was set
349 </p>
350 <div class="variablelist"><table border="0">
351 <col align="left" valign="top">
352 <tbody><tr>
353 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
354 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
355 </td>
356 </tr></tbody>
357 </table></div>
358 <p class="since">Since 0.12</p>
359 </div>
360 <hr>
361 <div class="refsect2">
362 <a name="json-reader-is-array"></a><h3>json_reader_is_array ()</h3>
363 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_array                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
364 <p>
365 Checks whether the <em class="parameter"><code>reader</code></em> is currently on an array
366 </p>
367 <div class="variablelist"><table border="0">
368 <col align="left" valign="top">
369 <tbody>
370 <tr>
371 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
372 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
373 </td>
374 </tr>
375 <tr>
376 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
377 <td>
378 <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an array, and <code class="literal">FALSE</code>
379 otherwise</td>
380 </tr>
381 </tbody>
382 </table></div>
383 <p class="since">Since 0.12</p>
384 </div>
385 <hr>
386 <div class="refsect2">
387 <a name="json-reader-count-elements"></a><h3>json_reader_count_elements ()</h3>
388 <pre class="programlisting"><span class="returnvalue">gint</span>                json_reader_count_elements          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
389 <p>
390 Counts the elements of the current position, if <em class="parameter"><code>reader</code></em> is
391 positioned on an array
392 </p>
393 <div class="variablelist"><table border="0">
394 <col align="left" valign="top">
395 <tbody>
396 <tr>
397 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
398 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
399 </td>
400 </tr>
401 <tr>
402 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
403 <td>the number of elements, or -1. In case of failure
404 the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</td>
405 </tr>
406 </tbody>
407 </table></div>
408 <p class="since">Since 0.12</p>
409 </div>
410 <hr>
411 <div class="refsect2">
412 <a name="json-reader-read-member"></a><h3>json_reader_read_member ()</h3>
413 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_read_member             (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>,
414                                                          <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
415 <p>
416 Advances the cursor of <em class="parameter"><code>reader</code></em> to the <em class="parameter"><code>member_name</code></em> of the object at the
417 current position.
418 </p>
419 <p>
420 You can use the json_reader_get_value* family of functions to retrieve
421 the value of the member; for instance:
422 </p>
423 <p>
424 </p>
425 <div class="informalexample">
426   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
427     <tbody>
428       <tr>
429         <td class="listing_lines" align="right"><pre>1
430 2</pre></td>
431         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="JsonReader.html#json-reader-read-member">json_reader_read_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"width"</span><span class="symbol">);</span>
432 <span class="normal">width </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-int-value">json_reader_get_int_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
433       </tr>
434     </tbody>
435   </table>
436 </div>
437
438 <p>
439 </p>
440 <p>
441 After reading the value, <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> should be called to
442 reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:
443 </p>
444 <p>
445 </p>
446 <div class="informalexample">
447   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
448     <tbody>
449       <tr>
450         <td class="listing_lines" align="right"><pre>1
451 2
452 3
453 4
454 5
455 6
456 7</pre></td>
457         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="JsonReader.html#json-reader-read-member">json_reader_read_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"author"</span><span class="symbol">);</span>
458 <span class="normal">author </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
459 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
460
461 <span class="function"><a href="JsonReader.html#json-reader-read-element">json_reader_read_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"title"</span><span class="symbol">);</span>
462 <span class="normal">title </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-get-string-value">json_reader_get_string_value</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
463 <span class="function"><a href="JsonReader.html#json-reader-end-element">json_reader_end_element</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
464       </tr>
465     </tbody>
466   </table>
467 </div>
468
469 <p>
470 </p>
471 <p>
472 If <em class="parameter"><code>reader</code></em> is not currently on an object, or if the <em class="parameter"><code>member_name</code></em> is not
473 defined in the object, the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> will be put in an error state until
474 <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> is called.
475 </p>
476 <div class="variablelist"><table border="0">
477 <col align="left" valign="top">
478 <tbody>
479 <tr>
480 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
481 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
482 </td>
483 </tr>
484 <tr>
485 <td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
486 <td>the name of the member to read</td>
487 </tr>
488 <tr>
489 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
490 <td>
491 <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</td>
492 </tr>
493 </tbody>
494 </table></div>
495 <p class="since">Since 0.12</p>
496 </div>
497 <hr>
498 <div class="refsect2">
499 <a name="json-reader-end-member"></a><h3>json_reader_end_member ()</h3>
500 <pre class="programlisting"><span class="returnvalue">void</span>                json_reader_end_member              (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
501 <p>
502 Moves the cursor back to the previous node after being positioned
503 inside an object
504 </p>
505 <p>
506 This function resets the error state of <em class="parameter"><code>reader</code></em>, if any was set
507 </p>
508 <div class="variablelist"><table border="0">
509 <col align="left" valign="top">
510 <tbody><tr>
511 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
512 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
513 </td>
514 </tr></tbody>
515 </table></div>
516 <p class="since">Since 0.12</p>
517 </div>
518 <hr>
519 <div class="refsect2">
520 <a name="json-reader-is-object"></a><h3>json_reader_is_object ()</h3>
521 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_object               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
522 <p>
523 Checks whether the <em class="parameter"><code>reader</code></em> is currently on an object
524 </p>
525 <div class="variablelist"><table border="0">
526 <col align="left" valign="top">
527 <tbody>
528 <tr>
529 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
530 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
531 </td>
532 </tr>
533 <tr>
534 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
535 <td>
536 <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on an object, and <code class="literal">FALSE</code>
537 otherwise</td>
538 </tr>
539 </tbody>
540 </table></div>
541 <p class="since">Since 0.12</p>
542 </div>
543 <hr>
544 <div class="refsect2">
545 <a name="json-reader-count-members"></a><h3>json_reader_count_members ()</h3>
546 <pre class="programlisting"><span class="returnvalue">gint</span>                json_reader_count_members           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
547 <p>
548 Counts the members of the current position, if <em class="parameter"><code>reader</code></em> is
549 positioned on an object
550 </p>
551 <div class="variablelist"><table border="0">
552 <col align="left" valign="top">
553 <tbody>
554 <tr>
555 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
556 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
557 </td>
558 </tr>
559 <tr>
560 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
561 <td>the number of members, or -1. In case of failure
562 the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</td>
563 </tr>
564 </tbody>
565 </table></div>
566 <p class="since">Since 0.12</p>
567 </div>
568 <hr>
569 <div class="refsect2">
570 <a name="json-reader-list-members"></a><h3>json_reader_list_members ()</h3>
571 <pre class="programlisting"><span class="returnvalue">gchar</span> **            json_reader_list_members            (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
572 <p>
573 Retrieves a list of member names from the current position, if <em class="parameter"><code>reader</code></em>
574 is positioned on an object.
575 </p>
576 <div class="variablelist"><table border="0">
577 <col align="left" valign="top">
578 <tbody>
579 <tr>
580 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
581 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
582 </td>
583 </tr>
584 <tr>
585 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
586 <td>a newly allocated, <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>-terminated
587 array of strings holding the members name. Use <code class="function">g_strfreev()</code> when
588 done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
589 </td>
590 </tr>
591 </tbody>
592 </table></div>
593 <p class="since">Since 0.14</p>
594 </div>
595 <hr>
596 <div class="refsect2">
597 <a name="json-reader-get-member-name"></a><h3>json_reader_get_member_name ()</h3>
598 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_reader_get_member_name         (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
599 <p>
600 Retrieves the name of the current member.
601 </p>
602 <div class="variablelist"><table border="0">
603 <col align="left" valign="top">
604 <tbody>
605 <tr>
606 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
607 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
608 </td>
609 </tr>
610 <tr>
611 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
612 <td>the name of the member, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
613 </td>
614 </tr>
615 </tbody>
616 </table></div>
617 <p class="since">Since 0.14</p>
618 </div>
619 <hr>
620 <div class="refsect2">
621 <a name="json-reader-is-value"></a><h3>json_reader_is_value ()</h3>
622 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_is_value                (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
623 <p>
624 Checks whether the <em class="parameter"><code>reader</code></em> is currently on a value
625 </p>
626 <div class="variablelist"><table border="0">
627 <col align="left" valign="top">
628 <tbody>
629 <tr>
630 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
631 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
632 </td>
633 </tr>
634 <tr>
635 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
636 <td>
637 <code class="literal">TRUE</code> if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is on a value, and <code class="literal">FALSE</code>
638 otherwise</td>
639 </tr>
640 </tbody>
641 </table></div>
642 <p class="since">Since 0.12</p>
643 </div>
644 <hr>
645 <div class="refsect2">
646 <a name="json-reader-get-value"></a><h3>json_reader_get_value ()</h3>
647 <pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> *          json_reader_get_value               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
648 <p>
649 Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> of the current position of <em class="parameter"><code>reader</code></em>
650 </p>
651 <div class="variablelist"><table border="0">
652 <col align="left" valign="top">
653 <tbody>
654 <tr>
655 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
656 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
657 </td>
658 </tr>
659 <tr>
660 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
661 <td>a <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. The returned node
662 is owned by the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> and it should not be modified or freed
663 directly. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
664 </td>
665 </tr>
666 </tbody>
667 </table></div>
668 <p class="since">Since 0.12</p>
669 </div>
670 <hr>
671 <div class="refsect2">
672 <a name="json-reader-get-int-value"></a><h3>json_reader_get_int_value ()</h3>
673 <pre class="programlisting"><span class="returnvalue">gint64</span>              json_reader_get_int_value           (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
674 <p>
675 Retrieves the integer value of the current position of <em class="parameter"><code>reader</code></em>
676 </p>
677 <div class="variablelist"><table border="0">
678 <col align="left" valign="top">
679 <tbody>
680 <tr>
681 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
682 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
683 </td>
684 </tr>
685 <tr>
686 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
687 <td>the integer value</td>
688 </tr>
689 </tbody>
690 </table></div>
691 <p class="since">Since 0.12</p>
692 </div>
693 <hr>
694 <div class="refsect2">
695 <a name="json-reader-get-double-value"></a><h3>json_reader_get_double_value ()</h3>
696 <pre class="programlisting"><span class="returnvalue">gdouble</span>             json_reader_get_double_value        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
697 <p>
698 Retrieves the floating point value of the current position of <em class="parameter"><code>reader</code></em>
699 </p>
700 <div class="variablelist"><table border="0">
701 <col align="left" valign="top">
702 <tbody>
703 <tr>
704 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
705 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
706 </td>
707 </tr>
708 <tr>
709 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
710 <td>the floating point value</td>
711 </tr>
712 </tbody>
713 </table></div>
714 <p class="since">Since 0.12</p>
715 </div>
716 <hr>
717 <div class="refsect2">
718 <a name="json-reader-get-string-value"></a><h3>json_reader_get_string_value ()</h3>
719 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       json_reader_get_string_value        (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
720 <p>
721 Retrieves the string value of the current position of <em class="parameter"><code>reader</code></em>
722 </p>
723 <div class="variablelist"><table border="0">
724 <col align="left" valign="top">
725 <tbody>
726 <tr>
727 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
728 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
729 </td>
730 </tr>
731 <tr>
732 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
733 <td>the string value</td>
734 </tr>
735 </tbody>
736 </table></div>
737 <p class="since">Since 0.12</p>
738 </div>
739 <hr>
740 <div class="refsect2">
741 <a name="json-reader-get-boolean-value"></a><h3>json_reader_get_boolean_value ()</h3>
742 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_get_boolean_value       (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
743 <p>
744 Retrieves the boolean value of the current position of <em class="parameter"><code>reader</code></em>
745 </p>
746 <div class="variablelist"><table border="0">
747 <col align="left" valign="top">
748 <tbody>
749 <tr>
750 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
751 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
752 </td>
753 </tr>
754 <tr>
755 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
756 <td>the boolean value</td>
757 </tr>
758 </tbody>
759 </table></div>
760 <p class="since">Since 0.12</p>
761 </div>
762 <hr>
763 <div class="refsect2">
764 <a name="json-reader-get-null-value"></a><h3>json_reader_get_null_value ()</h3>
765 <pre class="programlisting"><span class="returnvalue">gboolean</span>            json_reader_get_null_value          (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
766 <p>
767 Checks whether the value of the current position of <em class="parameter"><code>reader</code></em> is 'null'
768 </p>
769 <div class="variablelist"><table border="0">
770 <col align="left" valign="top">
771 <tbody>
772 <tr>
773 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
774 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
775 </td>
776 </tr>
777 <tr>
778 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
779 <td>
780 <code class="literal">TRUE</code> if 'null' is set, and <code class="literal">FALSE</code> otherwise</td>
781 </tr>
782 </tbody>
783 </table></div>
784 <p class="since">Since 0.12</p>
785 </div>
786 <hr>
787 <div class="refsect2">
788 <a name="JsonReaderError"></a><h3>enum JsonReaderError</h3>
789 <pre class="programlisting">typedef enum {
790   JSON_READER_ERROR_NO_ARRAY,
791   JSON_READER_ERROR_INVALID_INDEX,
792   JSON_READER_ERROR_NO_OBJECT,
793   JSON_READER_ERROR_INVALID_MEMBER,
794   JSON_READER_ERROR_INVALID_NODE,
795   JSON_READER_ERROR_NO_VALUE,
796   JSON_READER_ERROR_INVALID_TYPE
797 } JsonReaderError;
798 </pre>
799 <p>
800 Error codes enumeration for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors
801 </p>
802 <div class="variablelist"><table border="0">
803 <col align="left" valign="top">
804 <tbody>
805 <tr>
806 <td><p><a name="JSON-READER-ERROR-NO-ARRAY:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_ARRAY</code></span></p></td>
807 <td>No array found at the current position
808 </td>
809 </tr>
810 <tr>
811 <td><p><a name="JSON-READER-ERROR-INVALID-INDEX:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_INDEX</code></span></p></td>
812 <td>Index out of bounds
813 </td>
814 </tr>
815 <tr>
816 <td><p><a name="JSON-READER-ERROR-NO-OBJECT:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_OBJECT</code></span></p></td>
817 <td>No object found at the current position
818 </td>
819 </tr>
820 <tr>
821 <td><p><a name="JSON-READER-ERROR-INVALID-MEMBER:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_MEMBER</code></span></p></td>
822 <td>Member not found
823 </td>
824 </tr>
825 <tr>
826 <td><p><a name="JSON-READER-ERROR-INVALID-NODE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_NODE</code></span></p></td>
827 <td>No valid node found at the current position
828 </td>
829 </tr>
830 <tr>
831 <td><p><a name="JSON-READER-ERROR-NO-VALUE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_NO_VALUE</code></span></p></td>
832 <td>The node at the current position does not
833   hold a value
834 </td>
835 </tr>
836 <tr>
837 <td><p><a name="JSON-READER-ERROR-INVALID-TYPE:CAPS"></a><span class="term"><code class="literal">JSON_READER_ERROR_INVALID_TYPE</code></span></p></td>
838 <td>The node at the current position does not
839   hold a value of the desired type
840 </td>
841 </tr>
842 </tbody>
843 </table></div>
844 <p class="since">Since 0.12</p>
845 </div>
846 <hr>
847 <div class="refsect2">
848 <a name="JSON-READER-ERROR:CAPS"></a><h3>JSON_READER_ERROR</h3>
849 <pre class="programlisting">#define JSON_READER_ERROR               (json_reader_error_quark ())
850 </pre>
851 <p>
852 Error domain for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors
853 </p>
854 <p class="since">Since 0.12</p>
855 </div>
856 <hr>
857 <div class="refsect2">
858 <a name="json-reader-get-error"></a><h3>json_reader_get_error ()</h3>
859 <pre class="programlisting">const <span class="returnvalue">GError</span> *      json_reader_get_error               (<em class="parameter"><code><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> *reader</code></em>);</pre>
860 <p>
861 Retrieves the <span class="type">GError</span> currently set on <em class="parameter"><code>reader</code></em>, if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
862 is in error state
863 </p>
864 <div class="variablelist"><table border="0">
865 <col align="left" valign="top">
866 <tbody>
867 <tr>
868 <td><p><span class="term"><em class="parameter"><code>reader</code></em> :</span></p></td>
869 <td>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
870 </td>
871 </tr>
872 <tr>
873 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
874 <td>the pointer to the error, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
875 </td>
876 </tr>
877 </tbody>
878 </table></div>
879 <p class="since">Since 0.12</p>
880 </div>
881 </div>
882 <div class="refsect1">
883 <a name="JsonReader.property-details"></a><h2>Property Details</h2>
884 <div class="refsect2">
885 <a name="JsonReader--root"></a><h3>The <code class="literal">"root"</code> property</h3>
886 <pre class="programlisting">  "root"                     <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a>*             : Read / Write / Construct</pre>
887 <p>
888 The root of the JSON tree that the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> should read.
889 </p>
890 <p class="since">Since 0.12</p>
891 </div>
892 </div>
893 </div>
894 <div class="footer">
895 <hr>
896           Generated by GTK-Doc V1.18.1</div>
897 </body>
898 </html>