1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>JsonReader: JSON-GLib Reference Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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.25.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
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="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
18 <a href="#JsonReader.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
19 <a href="#JsonReader.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
20 <a href="#JsonReader.properties" class="shortcut">Properties</a></span>
22 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
23 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
24 <td><a accesskey="p" href="JsonParser.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
25 <td><a accesskey="n" href="JsonPath.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
27 <div class="refentry">
28 <a name="JsonReader"></a><div class="titlepage"></div>
29 <div class="refnamediv"><table width="100%"><tr>
31 <h2><span class="refentrytitle"><a name="JsonReader.top_of_page"></a>JsonReader</span></h2>
32 <p>JsonReader — A cursor-based parser</p>
34 <td class="gallery_image" valign="top" align="right"></td>
36 <div class="refsect1">
37 <a name="JsonReader.functions"></a><h2>Functions</h2>
38 <div class="informaltable"><table class="informaltable" width="100%" border="0">
40 <col width="150px" class="functions_return">
41 <col class="functions_name">
45 <td class="function_type">
46 <a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *
48 <td class="function_name">
49 <a class="link" href="JsonReader.html#json-reader-new" title="json_reader_new ()">json_reader_new</a> <span class="c_punctuation">()</span>
53 <td class="function_type">
54 <span class="returnvalue">void</span>
56 <td class="function_name">
57 <a class="link" href="JsonReader.html#json-reader-set-root" title="json_reader_set_root ()">json_reader_set_root</a> <span class="c_punctuation">()</span>
61 <td class="function_type">
62 <span class="returnvalue">gboolean</span>
64 <td class="function_name">
65 <a class="link" href="JsonReader.html#json-reader-read-element" title="json_reader_read_element ()">json_reader_read_element</a> <span class="c_punctuation">()</span>
69 <td class="function_type">
70 <span class="returnvalue">void</span>
72 <td class="function_name">
73 <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()">json_reader_end_element</a> <span class="c_punctuation">()</span>
77 <td class="function_type">
78 <span class="returnvalue">gboolean</span>
80 <td class="function_name">
81 <a class="link" href="JsonReader.html#json-reader-is-array" title="json_reader_is_array ()">json_reader_is_array</a> <span class="c_punctuation">()</span>
85 <td class="function_type">
86 <span class="returnvalue">gint</span>
88 <td class="function_name">
89 <a class="link" href="JsonReader.html#json-reader-count-elements" title="json_reader_count_elements ()">json_reader_count_elements</a> <span class="c_punctuation">()</span>
93 <td class="function_type">
94 <span class="returnvalue">gboolean</span>
96 <td class="function_name">
97 <a class="link" href="JsonReader.html#json-reader-read-member" title="json_reader_read_member ()">json_reader_read_member</a> <span class="c_punctuation">()</span>
101 <td class="function_type">
102 <span class="returnvalue">void</span>
104 <td class="function_name">
105 <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()">json_reader_end_member</a> <span class="c_punctuation">()</span>
109 <td class="function_type">
110 <span class="returnvalue">gboolean</span>
112 <td class="function_name">
113 <a class="link" href="JsonReader.html#json-reader-is-object" title="json_reader_is_object ()">json_reader_is_object</a> <span class="c_punctuation">()</span>
117 <td class="function_type">
118 <span class="returnvalue">gint</span>
120 <td class="function_name">
121 <a class="link" href="JsonReader.html#json-reader-count-members" title="json_reader_count_members ()">json_reader_count_members</a> <span class="c_punctuation">()</span>
125 <td class="function_type">
126 <span class="returnvalue">gchar</span> **
128 <td class="function_name">
129 <a class="link" href="JsonReader.html#json-reader-list-members" title="json_reader_list_members ()">json_reader_list_members</a> <span class="c_punctuation">()</span>
133 <td class="function_type">const <span class="returnvalue">gchar</span> *
135 <td class="function_name">
136 <a class="link" href="JsonReader.html#json-reader-get-member-name" title="json_reader_get_member_name ()">json_reader_get_member_name</a> <span class="c_punctuation">()</span>
140 <td class="function_type">
141 <span class="returnvalue">gboolean</span>
143 <td class="function_name">
144 <a class="link" href="JsonReader.html#json-reader-is-value" title="json_reader_is_value ()">json_reader_is_value</a> <span class="c_punctuation">()</span>
148 <td class="function_type">
149 <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
151 <td class="function_name">
152 <a class="link" href="JsonReader.html#json-reader-get-value" title="json_reader_get_value ()">json_reader_get_value</a> <span class="c_punctuation">()</span>
156 <td class="function_type">
157 <span class="returnvalue">gint64</span>
159 <td class="function_name">
160 <a class="link" href="JsonReader.html#json-reader-get-int-value" title="json_reader_get_int_value ()">json_reader_get_int_value</a> <span class="c_punctuation">()</span>
164 <td class="function_type">
165 <span class="returnvalue">gdouble</span>
167 <td class="function_name">
168 <a class="link" href="JsonReader.html#json-reader-get-double-value" title="json_reader_get_double_value ()">json_reader_get_double_value</a> <span class="c_punctuation">()</span>
172 <td class="function_type">const <span class="returnvalue">gchar</span> *
174 <td class="function_name">
175 <a class="link" href="JsonReader.html#json-reader-get-string-value" title="json_reader_get_string_value ()">json_reader_get_string_value</a> <span class="c_punctuation">()</span>
179 <td class="function_type">
180 <span class="returnvalue">gboolean</span>
182 <td class="function_name">
183 <a class="link" href="JsonReader.html#json-reader-get-boolean-value" title="json_reader_get_boolean_value ()">json_reader_get_boolean_value</a> <span class="c_punctuation">()</span>
187 <td class="function_type">
188 <span class="returnvalue">gboolean</span>
190 <td class="function_name">
191 <a class="link" href="JsonReader.html#json-reader-get-null-value" title="json_reader_get_null_value ()">json_reader_get_null_value</a> <span class="c_punctuation">()</span>
195 <td class="function_type">const <span class="returnvalue">GError</span> *
197 <td class="function_name">
198 <a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()">json_reader_get_error</a> <span class="c_punctuation">()</span>
204 <div class="refsect1">
205 <a name="JsonReader.properties"></a><h2>Properties</h2>
206 <div class="informaltable"><table class="informaltable" border="0">
208 <col width="150px" class="properties_type">
209 <col width="300px" class="properties_name">
210 <col width="200px" class="properties_flags">
213 <td class="property_type">
214 <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</td>
215 <td class="property_name"><a class="link" href="JsonReader.html#JsonReader--root" title="The “root” property">root</a></td>
216 <td class="property_flags">Read / Write / Construct</td>
220 <div class="refsect1">
221 <a name="JsonReader.other"></a><h2>Types and Values</h2>
222 <div class="informaltable"><table class="informaltable" width="100%" border="0">
224 <col width="150px" class="name">
225 <col class="description">
229 <td class="datatype_keyword">struct</td>
230 <td class="function_name"><a class="link" href="JsonReader.html#JsonReader-struct" title="struct JsonReader">JsonReader</a></td>
233 <td class="datatype_keyword">struct</td>
234 <td class="function_name"><a class="link" href="JsonReader.html#JsonReaderClass" title="struct JsonReaderClass">JsonReaderClass</a></td>
237 <td class="datatype_keyword">enum</td>
238 <td class="function_name"><a class="link" href="JsonReader.html#JsonReaderError" title="enum JsonReaderError">JsonReaderError</a></td>
241 <td class="define_keyword">#define</td>
242 <td class="function_name"><a class="link" href="JsonReader.html#JSON-READER-ERROR:CAPS" title="JSON_READER_ERROR">JSON_READER_ERROR</a></td>
247 <div class="refsect1">
248 <a name="JsonReader.object-hierarchy"></a><h2>Object Hierarchy</h2>
249 <pre class="screen"> GObject
250 <span class="lineart">╰──</span> JsonReader
253 <div class="refsect1">
254 <a name="JsonReader.description"></a><h2>Description</h2>
255 <p><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
256 is similar, in spirit, to the XML Reader API.</p>
257 <p>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
258 calls will simply be ignored until a function that resets the error state is
260 <div class="informalexample">
261 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
264 <td class="listing_lines" align="right"><pre>1
274 <td class="listing_code"><pre class="programlisting"><span class="comment">// ask for the 7th element; if the element does not exist, the</span>
275 <span class="comment">// reader will be put in an error state</span>
276 <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>
278 <span class="comment">// in case of error, this will return NULL, otherwise it will</span>
279 <span class="comment">// return the value of the element</span>
280 <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>
282 <span class="comment">// this function resets the error state if any was set</span>
283 <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>
290 <p>If you want to detect the error state as soon as possible, you can use
291 <a class="link" href="JsonReader.html#json-reader-get-error" title="json_reader_get_error ()"><code class="function">json_reader_get_error()</code></a>:</p>
292 <div class="informalexample">
293 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
296 <td class="listing_lines" align="right"><pre>1
303 <td class="listing_code"><pre class="programlisting"><span class="comment">// like the example above, but in this case we print out the</span>
304 <span class="comment">// error immediately</span>
305 <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>
306 <span class="normal"> </span><span class="cbracket">{</span>
307 <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>
308 <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">-></span><span class="normal">message</span><span class="symbol">);</span>
309 <span class="normal"> </span><span class="cbracket">}</span></pre></td>
316 <p><a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is available since JSON-GLib 0.12.</p>
318 <div class="refsect1">
319 <a name="JsonReader.functions_details"></a><h2>Functions</h2>
320 <div class="refsect2">
321 <a name="json-reader-new"></a><h3>json_reader_new ()</h3>
322 <pre class="programlisting"><a class="link" href="JsonReader.html" title="JsonReader"><span class="returnvalue">JsonReader</span></a> *
323 json_reader_new (<em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
324 <p>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
325 the JSON tree starting from <em class="parameter"><code>node</code></em>
327 <div class="refsect3">
328 <a name="json-reader-new.parameters"></a><h4>Parameters</h4>
329 <div class="informaltable"><table class="informaltable" width="100%" border="0">
331 <col width="150px" class="parameters_name">
332 <col class="parameters_description">
333 <col width="200px" class="parameters_annotations">
336 <td class="parameter_name"><p>node</p></td>
337 <td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. </p></td>
338 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
342 <div class="refsect3">
343 <a name="json-reader-new.returns"></a><h4>Returns</h4>
344 <p> 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
345 release the allocated resources when done</p>
347 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
350 <div class="refsect2">
351 <a name="json-reader-set-root"></a><h3>json_reader_set_root ()</h3>
352 <pre class="programlisting"><span class="returnvalue">void</span>
353 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>,
354 <em class="parameter"><code><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *root</code></em>);</pre>
355 <p>Sets the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> to be read by <em class="parameter"><code>reader</code></em>
356 . The <em class="parameter"><code>reader</code></em>
358 a copy of <em class="parameter"><code>root</code></em>
360 <p>If another <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> is currently set as root, it will be replaced.</p>
361 <div class="refsect3">
362 <a name="json-reader-set-root.parameters"></a><h4>Parameters</h4>
363 <div class="informaltable"><table class="informaltable" width="100%" border="0">
365 <col width="150px" class="parameters_name">
366 <col class="parameters_description">
367 <col width="200px" class="parameters_annotations">
371 <td class="parameter_name"><p>reader</p></td>
372 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
373 <td class="parameter_annotations"> </td>
376 <td class="parameter_name"><p>root</p></td>
377 <td class="parameter_description"><p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>. </p></td>
378 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
383 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
386 <div class="refsect2">
387 <a name="json-reader-read-element"></a><h3>json_reader_read_element ()</h3>
388 <pre class="programlisting"><span class="returnvalue">gboolean</span>
389 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>,
390 <em class="parameter"><code><span class="type">guint</span> index_</code></em>);</pre>
391 <p>Advances the cursor of <em class="parameter"><code>reader</code></em>
392 to the element <em class="parameter"><code>index_</code></em>
394 or the object at the current position.</p>
395 <p>You can use the json_reader_get_value* family of functions to retrieve
396 the value of the element; for instance:</p>
397 <div class="informalexample">
398 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
401 <td class="listing_lines" align="right"><pre>1
403 <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>
404 <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>
411 <p>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
412 reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:</p>
413 <div class="informalexample">
414 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
417 <td class="listing_lines" align="right"><pre>1
424 <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>
425 <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>
426 <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>
428 <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>
429 <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>
430 <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>
437 <p>If <em class="parameter"><code>reader</code></em>
438 is not currently on an array or an object, or if the <em class="parameter"><code>index_</code></em>
440 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
441 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. This means
442 that if used conditionally, <a class="link" href="JsonReader.html#json-reader-end-element" title="json_reader_end_element ()"><code class="function">json_reader_end_element()</code></a> must be called on both
444 <div class="informalexample">
445 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
448 <td class="listing_lines" align="right"><pre>1
457 <td class="listing_code"><pre class="programlisting"><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">1</span><span class="symbol">))</span>
458 <span class="normal"> </span><span class="cbracket">{</span>
459 <span class="normal"> </span><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 <span class="normal"> </span><span class="function">g_set_error</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> …</span><span class="symbol">);</span>
461 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> FALSE</span><span class="symbol">;</span>
462 <span class="normal"> </span><span class="cbracket">}</span>
464 <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>
465 <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>
472 <div class="refsect3">
473 <a name="json-reader-read-element.parameters"></a><h4>Parameters</h4>
474 <div class="informaltable"><table class="informaltable" width="100%" border="0">
476 <col width="150px" class="parameters_name">
477 <col class="parameters_description">
478 <col width="200px" class="parameters_annotations">
482 <td class="parameter_name"><p>reader</p></td>
483 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
484 <td class="parameter_annotations"> </td>
487 <td class="parameter_name"><p>index_</p></td>
488 <td class="parameter_description"><p>the index of the element</p></td>
489 <td class="parameter_annotations"> </td>
494 <div class="refsect3">
495 <a name="json-reader-read-element.returns"></a><h4>Returns</h4>
496 <p> <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</p>
498 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
501 <div class="refsect2">
502 <a name="json-reader-end-element"></a><h3>json_reader_end_element ()</h3>
503 <pre class="programlisting"><span class="returnvalue">void</span>
504 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>
505 <p>Moves the cursor back to the previous node after being positioned
507 <p>This function resets the error state of <em class="parameter"><code>reader</code></em>
509 <div class="refsect3">
510 <a name="json-reader-end-element.parameters"></a><h4>Parameters</h4>
511 <div class="informaltable"><table class="informaltable" width="100%" border="0">
513 <col width="150px" class="parameters_name">
514 <col class="parameters_description">
515 <col width="200px" class="parameters_annotations">
518 <td class="parameter_name"><p>reader</p></td>
519 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
520 <td class="parameter_annotations"> </td>
524 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
527 <div class="refsect2">
528 <a name="json-reader-is-array"></a><h3>json_reader_is_array ()</h3>
529 <pre class="programlisting"><span class="returnvalue">gboolean</span>
530 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>
531 <p>Checks whether the <em class="parameter"><code>reader</code></em>
532 is currently on an array</p>
533 <div class="refsect3">
534 <a name="json-reader-is-array.parameters"></a><h4>Parameters</h4>
535 <div class="informaltable"><table class="informaltable" width="100%" border="0">
537 <col width="150px" class="parameters_name">
538 <col class="parameters_description">
539 <col width="200px" class="parameters_annotations">
542 <td class="parameter_name"><p>reader</p></td>
543 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
544 <td class="parameter_annotations"> </td>
548 <div class="refsect3">
549 <a name="json-reader-is-array.returns"></a><h4>Returns</h4>
550 <p> <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>
553 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
556 <div class="refsect2">
557 <a name="json-reader-count-elements"></a><h3>json_reader_count_elements ()</h3>
558 <pre class="programlisting"><span class="returnvalue">gint</span>
559 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>
560 <p>Counts the elements of the current position, if <em class="parameter"><code>reader</code></em>
562 positioned on an array</p>
563 <div class="refsect3">
564 <a name="json-reader-count-elements.parameters"></a><h4>Parameters</h4>
565 <div class="informaltable"><table class="informaltable" width="100%" border="0">
567 <col width="150px" class="parameters_name">
568 <col class="parameters_description">
569 <col width="200px" class="parameters_annotations">
572 <td class="parameter_name"><p>reader</p></td>
573 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
574 <td class="parameter_annotations"> </td>
578 <div class="refsect3">
579 <a name="json-reader-count-elements.returns"></a><h4>Returns</h4>
580 <p> the number of elements, or -1. In case of failure
581 the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</p>
583 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
586 <div class="refsect2">
587 <a name="json-reader-read-member"></a><h3>json_reader_read_member ()</h3>
588 <pre class="programlisting"><span class="returnvalue">gboolean</span>
589 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>,
590 <em class="parameter"><code>const <span class="type">gchar</span> *member_name</code></em>);</pre>
591 <p>Advances the cursor of <em class="parameter"><code>reader</code></em>
592 to the <em class="parameter"><code>member_name</code></em>
594 current position.</p>
595 <p>You can use the json_reader_get_value* family of functions to retrieve
596 the value of the member; for instance:</p>
597 <div class="informalexample">
598 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
601 <td class="listing_lines" align="right"><pre>1
603 <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>
604 <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>
611 <p>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
612 reposition the cursor inside the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>, e.g.:</p>
613 <div class="informalexample">
614 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
617 <td class="listing_lines" align="right"><pre>1
624 <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>
625 <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>
626 <span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
628 <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">"title"</span><span class="symbol">);</span>
629 <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>
630 <span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
637 <p>If <em class="parameter"><code>reader</code></em>
638 is not currently on an object, or if the <em class="parameter"><code>member_name</code></em>
640 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
641 <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. This means that if used conditionally,
642 <a class="link" href="JsonReader.html#json-reader-end-member" title="json_reader_end_member ()"><code class="function">json_reader_end_member()</code></a> must be called on both code paths:</p>
643 <div class="informalexample">
644 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
647 <td class="listing_lines" align="right"><pre>1
656 <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><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">"title"</span><span class="symbol">))</span>
657 <span class="normal"> </span><span class="cbracket">{</span>
658 <span class="normal"> </span><span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span>
659 <span class="normal"> </span><span class="function">g_set_error</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> …</span><span class="symbol">);</span>
660 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> FALSE</span><span class="symbol">;</span>
661 <span class="normal"> </span><span class="cbracket">}</span>
663 <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>
664 <span class="function"><a href="JsonReader.html#json-reader-end-member">json_reader_end_member</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reader</span><span class="symbol">);</span></pre></td>
671 <div class="refsect3">
672 <a name="json-reader-read-member.parameters"></a><h4>Parameters</h4>
673 <div class="informaltable"><table class="informaltable" width="100%" border="0">
675 <col width="150px" class="parameters_name">
676 <col class="parameters_description">
677 <col width="200px" class="parameters_annotations">
681 <td class="parameter_name"><p>reader</p></td>
682 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
683 <td class="parameter_annotations"> </td>
686 <td class="parameter_name"><p>member_name</p></td>
687 <td class="parameter_description"><p>the name of the member to read</p></td>
688 <td class="parameter_annotations"> </td>
693 <div class="refsect3">
694 <a name="json-reader-read-member.returns"></a><h4>Returns</h4>
695 <p> <code class="literal">TRUE</code> on success, and <code class="literal">FALSE</code> otherwise</p>
697 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
700 <div class="refsect2">
701 <a name="json-reader-end-member"></a><h3>json_reader_end_member ()</h3>
702 <pre class="programlisting"><span class="returnvalue">void</span>
703 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>
704 <p>Moves the cursor back to the previous node after being positioned
706 <p>This function resets the error state of <em class="parameter"><code>reader</code></em>
708 <div class="refsect3">
709 <a name="json-reader-end-member.parameters"></a><h4>Parameters</h4>
710 <div class="informaltable"><table class="informaltable" width="100%" border="0">
712 <col width="150px" class="parameters_name">
713 <col class="parameters_description">
714 <col width="200px" class="parameters_annotations">
717 <td class="parameter_name"><p>reader</p></td>
718 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
719 <td class="parameter_annotations"> </td>
723 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
726 <div class="refsect2">
727 <a name="json-reader-is-object"></a><h3>json_reader_is_object ()</h3>
728 <pre class="programlisting"><span class="returnvalue">gboolean</span>
729 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>
730 <p>Checks whether the <em class="parameter"><code>reader</code></em>
731 is currently on an object</p>
732 <div class="refsect3">
733 <a name="json-reader-is-object.parameters"></a><h4>Parameters</h4>
734 <div class="informaltable"><table class="informaltable" width="100%" border="0">
736 <col width="150px" class="parameters_name">
737 <col class="parameters_description">
738 <col width="200px" class="parameters_annotations">
741 <td class="parameter_name"><p>reader</p></td>
742 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
743 <td class="parameter_annotations"> </td>
747 <div class="refsect3">
748 <a name="json-reader-is-object.returns"></a><h4>Returns</h4>
749 <p> <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>
752 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
755 <div class="refsect2">
756 <a name="json-reader-count-members"></a><h3>json_reader_count_members ()</h3>
757 <pre class="programlisting"><span class="returnvalue">gint</span>
758 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>
759 <p>Counts the members of the current position, if <em class="parameter"><code>reader</code></em>
761 positioned on an object</p>
762 <div class="refsect3">
763 <a name="json-reader-count-members.parameters"></a><h4>Parameters</h4>
764 <div class="informaltable"><table class="informaltable" width="100%" border="0">
766 <col width="150px" class="parameters_name">
767 <col class="parameters_description">
768 <col width="200px" class="parameters_annotations">
771 <td class="parameter_name"><p>reader</p></td>
772 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
773 <td class="parameter_annotations"> </td>
777 <div class="refsect3">
778 <a name="json-reader-count-members.returns"></a><h4>Returns</h4>
779 <p> the number of members, or -1. In case of failure
780 the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> is set in an error state</p>
782 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
785 <div class="refsect2">
786 <a name="json-reader-list-members"></a><h3>json_reader_list_members ()</h3>
787 <pre class="programlisting"><span class="returnvalue">gchar</span> **
788 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>
789 <p>Retrieves a list of member names from the current position, if <em class="parameter"><code>reader</code></em>
791 is positioned on an object.</p>
792 <div class="refsect3">
793 <a name="json-reader-list-members.parameters"></a><h4>Parameters</h4>
794 <div class="informaltable"><table class="informaltable" width="100%" border="0">
796 <col width="150px" class="parameters_name">
797 <col class="parameters_description">
798 <col width="200px" class="parameters_annotations">
801 <td class="parameter_name"><p>reader</p></td>
802 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
803 <td class="parameter_annotations"> </td>
807 <div class="refsect3">
808 <a name="json-reader-list-members.returns"></a><h4>Returns</h4>
809 <p> a newly allocated, <code class="literal">NULL</code>-terminated
810 array of strings holding the members name. Use <code class="function">g_strfreev()</code> when
812 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
814 <p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
817 <div class="refsect2">
818 <a name="json-reader-get-member-name"></a><h3>json_reader_get_member_name ()</h3>
819 <pre class="programlisting">const <span class="returnvalue">gchar</span> *
820 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>
821 <p>Retrieves the name of the current member.</p>
822 <div class="refsect3">
823 <a name="json-reader-get-member-name.parameters"></a><h4>Parameters</h4>
824 <div class="informaltable"><table class="informaltable" width="100%" border="0">
826 <col width="150px" class="parameters_name">
827 <col class="parameters_description">
828 <col width="200px" class="parameters_annotations">
831 <td class="parameter_name"><p>reader</p></td>
832 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
833 <td class="parameter_annotations"> </td>
837 <div class="refsect3">
838 <a name="json-reader-get-member-name.returns"></a><h4>Returns</h4>
839 <p> the name of the member, or <code class="literal">NULL</code>. </p>
840 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
842 <p class="since">Since: <a class="link" href="ix08.html#api-index-0.14">0.14</a></p>
845 <div class="refsect2">
846 <a name="json-reader-is-value"></a><h3>json_reader_is_value ()</h3>
847 <pre class="programlisting"><span class="returnvalue">gboolean</span>
848 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>
849 <p>Checks whether the <em class="parameter"><code>reader</code></em>
850 is currently on a value</p>
851 <div class="refsect3">
852 <a name="json-reader-is-value.parameters"></a><h4>Parameters</h4>
853 <div class="informaltable"><table class="informaltable" width="100%" border="0">
855 <col width="150px" class="parameters_name">
856 <col class="parameters_description">
857 <col width="200px" class="parameters_annotations">
860 <td class="parameter_name"><p>reader</p></td>
861 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
862 <td class="parameter_annotations"> </td>
866 <div class="refsect3">
867 <a name="json-reader-is-value.returns"></a><h4>Returns</h4>
868 <p> <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>
871 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
874 <div class="refsect2">
875 <a name="json-reader-get-value"></a><h3>json_reader_get_value ()</h3>
876 <pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
877 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>
878 <p>Retrieves the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> of the current position of <em class="parameter"><code>reader</code></em>
880 <div class="refsect3">
881 <a name="json-reader-get-value.parameters"></a><h4>Parameters</h4>
882 <div class="informaltable"><table class="informaltable" width="100%" border="0">
884 <col width="150px" class="parameters_name">
885 <col class="parameters_description">
886 <col width="200px" class="parameters_annotations">
889 <td class="parameter_name"><p>reader</p></td>
890 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
891 <td class="parameter_annotations"> </td>
895 <div class="refsect3">
896 <a name="json-reader-get-value.returns"></a><h4>Returns</h4>
897 <p> a <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a>, or <code class="literal">NULL</code>. The returned node
898 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
900 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
902 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
905 <div class="refsect2">
906 <a name="json-reader-get-int-value"></a><h3>json_reader_get_int_value ()</h3>
907 <pre class="programlisting"><span class="returnvalue">gint64</span>
908 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>
909 <p>Retrieves the integer value of the current position of <em class="parameter"><code>reader</code></em>
911 <div class="refsect3">
912 <a name="json-reader-get-int-value.parameters"></a><h4>Parameters</h4>
913 <div class="informaltable"><table class="informaltable" width="100%" border="0">
915 <col width="150px" class="parameters_name">
916 <col class="parameters_description">
917 <col width="200px" class="parameters_annotations">
920 <td class="parameter_name"><p>reader</p></td>
921 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
922 <td class="parameter_annotations"> </td>
926 <div class="refsect3">
927 <a name="json-reader-get-int-value.returns"></a><h4>Returns</h4>
928 <p> the integer value</p>
930 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
933 <div class="refsect2">
934 <a name="json-reader-get-double-value"></a><h3>json_reader_get_double_value ()</h3>
935 <pre class="programlisting"><span class="returnvalue">gdouble</span>
936 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>
937 <p>Retrieves the floating point value of the current position of <em class="parameter"><code>reader</code></em>
939 <div class="refsect3">
940 <a name="json-reader-get-double-value.parameters"></a><h4>Parameters</h4>
941 <div class="informaltable"><table class="informaltable" width="100%" border="0">
943 <col width="150px" class="parameters_name">
944 <col class="parameters_description">
945 <col width="200px" class="parameters_annotations">
948 <td class="parameter_name"><p>reader</p></td>
949 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
950 <td class="parameter_annotations"> </td>
954 <div class="refsect3">
955 <a name="json-reader-get-double-value.returns"></a><h4>Returns</h4>
956 <p> the floating point value</p>
958 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
961 <div class="refsect2">
962 <a name="json-reader-get-string-value"></a><h3>json_reader_get_string_value ()</h3>
963 <pre class="programlisting">const <span class="returnvalue">gchar</span> *
964 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>
965 <p>Retrieves the string value of the current position of <em class="parameter"><code>reader</code></em>
967 <div class="refsect3">
968 <a name="json-reader-get-string-value.parameters"></a><h4>Parameters</h4>
969 <div class="informaltable"><table class="informaltable" width="100%" border="0">
971 <col width="150px" class="parameters_name">
972 <col class="parameters_description">
973 <col width="200px" class="parameters_annotations">
976 <td class="parameter_name"><p>reader</p></td>
977 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
978 <td class="parameter_annotations"> </td>
982 <div class="refsect3">
983 <a name="json-reader-get-string-value.returns"></a><h4>Returns</h4>
984 <p> the string value</p>
986 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
989 <div class="refsect2">
990 <a name="json-reader-get-boolean-value"></a><h3>json_reader_get_boolean_value ()</h3>
991 <pre class="programlisting"><span class="returnvalue">gboolean</span>
992 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>
993 <p>Retrieves the boolean value of the current position of <em class="parameter"><code>reader</code></em>
995 <div class="refsect3">
996 <a name="json-reader-get-boolean-value.parameters"></a><h4>Parameters</h4>
997 <div class="informaltable"><table class="informaltable" width="100%" border="0">
999 <col width="150px" class="parameters_name">
1000 <col class="parameters_description">
1001 <col width="200px" class="parameters_annotations">
1004 <td class="parameter_name"><p>reader</p></td>
1005 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
1006 <td class="parameter_annotations"> </td>
1010 <div class="refsect3">
1011 <a name="json-reader-get-boolean-value.returns"></a><h4>Returns</h4>
1012 <p> the boolean value</p>
1014 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1017 <div class="refsect2">
1018 <a name="json-reader-get-null-value"></a><h3>json_reader_get_null_value ()</h3>
1019 <pre class="programlisting"><span class="returnvalue">gboolean</span>
1020 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>
1021 <p>Checks whether the value of the current position of <em class="parameter"><code>reader</code></em>
1023 <div class="refsect3">
1024 <a name="json-reader-get-null-value.parameters"></a><h4>Parameters</h4>
1025 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1027 <col width="150px" class="parameters_name">
1028 <col class="parameters_description">
1029 <col width="200px" class="parameters_annotations">
1032 <td class="parameter_name"><p>reader</p></td>
1033 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
1034 <td class="parameter_annotations"> </td>
1038 <div class="refsect3">
1039 <a name="json-reader-get-null-value.returns"></a><h4>Returns</h4>
1040 <p> <code class="literal">TRUE</code> if 'null' is set, and <code class="literal">FALSE</code> otherwise</p>
1042 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1045 <div class="refsect2">
1046 <a name="json-reader-get-error"></a><h3>json_reader_get_error ()</h3>
1047 <pre class="programlisting">const <span class="returnvalue">GError</span> *
1048 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>
1049 <p>Retrieves the <span class="type">GError</span> currently set on <em class="parameter"><code>reader</code></em>
1050 , if the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a>
1051 is in error state</p>
1052 <div class="refsect3">
1053 <a name="json-reader-get-error.parameters"></a><h4>Parameters</h4>
1054 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1056 <col width="150px" class="parameters_name">
1057 <col class="parameters_description">
1058 <col width="200px" class="parameters_annotations">
1061 <td class="parameter_name"><p>reader</p></td>
1062 <td class="parameter_description"><p>a <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a></p></td>
1063 <td class="parameter_annotations"> </td>
1067 <div class="refsect3">
1068 <a name="json-reader-get-error.returns"></a><h4>Returns</h4>
1069 <p> the pointer to the error, or <code class="literal">NULL</code>. </p>
1070 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1072 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1075 <div class="refsect1">
1076 <a name="JsonReader.other_details"></a><h2>Types and Values</h2>
1077 <div class="refsect2">
1078 <a name="JsonReader-struct"></a><h3>struct JsonReader</h3>
1079 <pre class="programlisting">struct JsonReader;</pre>
1080 <p>The <code class="literal">JsonReader</code> structure contains only private data and should
1081 be accessed using the provided API</p>
1082 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1085 <div class="refsect2">
1086 <a name="JsonReaderClass"></a><h3>struct JsonReaderClass</h3>
1087 <pre class="programlisting">struct JsonReaderClass {
1090 <p>The <code class="literal">JsonReaderClass</code> structure contains only private data</p>
1091 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1094 <div class="refsect2">
1095 <a name="JsonReaderError"></a><h3>enum JsonReaderError</h3>
1096 <p>Error codes enumeration for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors</p>
1097 <div class="refsect3">
1098 <a name="JsonReaderError.members"></a><h4>Members</h4>
1099 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1101 <col width="300px" class="enum_members_name">
1102 <col class="enum_members_description">
1103 <col width="200px" class="enum_members_annotations">
1107 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-ARRAY:CAPS"></a>JSON_READER_ERROR_NO_ARRAY</p></td>
1108 <td class="enum_member_description">
1109 <p>No array found at the current position</p>
1111 <td class="enum_member_annotations"> </td>
1114 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-INDEX:CAPS"></a>JSON_READER_ERROR_INVALID_INDEX</p></td>
1115 <td class="enum_member_description">
1116 <p>Index out of bounds</p>
1118 <td class="enum_member_annotations"> </td>
1121 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-OBJECT:CAPS"></a>JSON_READER_ERROR_NO_OBJECT</p></td>
1122 <td class="enum_member_description">
1123 <p>No object found at the current position</p>
1125 <td class="enum_member_annotations"> </td>
1128 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-MEMBER:CAPS"></a>JSON_READER_ERROR_INVALID_MEMBER</p></td>
1129 <td class="enum_member_description">
1130 <p>Member not found</p>
1132 <td class="enum_member_annotations"> </td>
1135 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-NODE:CAPS"></a>JSON_READER_ERROR_INVALID_NODE</p></td>
1136 <td class="enum_member_description">
1137 <p>No valid node found at the current position</p>
1139 <td class="enum_member_annotations"> </td>
1142 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-NO-VALUE:CAPS"></a>JSON_READER_ERROR_NO_VALUE</p></td>
1143 <td class="enum_member_description">
1144 <p>The node at the current position does not
1147 <td class="enum_member_annotations"> </td>
1150 <td class="enum_member_name"><p><a name="JSON-READER-ERROR-INVALID-TYPE:CAPS"></a>JSON_READER_ERROR_INVALID_TYPE</p></td>
1151 <td class="enum_member_description">
1152 <p>The node at the current position does not
1153 hold a value of the desired type</p>
1155 <td class="enum_member_annotations"> </td>
1160 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1163 <div class="refsect2">
1164 <a name="JSON-READER-ERROR:CAPS"></a><h3>JSON_READER_ERROR</h3>
1165 <pre class="programlisting">#define JSON_READER_ERROR (json_reader_error_quark ())
1167 <p>Error domain for <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> errors</p>
1168 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1171 <div class="refsect1">
1172 <a name="JsonReader.property-details"></a><h2>Property Details</h2>
1173 <div class="refsect2">
1174 <a name="JsonReader--root"></a><h3>The <code class="literal">“root”</code> property</h3>
1175 <pre class="programlisting"> “root” <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *</pre>
1176 <p>The root of the JSON tree that the <a class="link" href="JsonReader.html" title="JsonReader"><span class="type">JsonReader</span></a> should read.</p>
1177 <p>Flags: Read / Write / Construct</p>
1178 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
1182 <div class="footer">
1183 <hr>Generated by GTK-Doc V1.25.1</div>