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>JsonParser: 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="ch02.html" title="Parser">
10 <link rel="next" href="JsonReader.html" title="JsonReader">
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="#JsonParser.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
19 <a href="#JsonParser.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
20 <a href="#JsonParser.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span>
21 <a href="#JsonParser.signals" class="shortcut">Signals</a></span>
23 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
24 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
25 <td><a accesskey="p" href="ch02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
26 <td><a accesskey="n" href="JsonReader.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
28 <div class="refentry">
29 <a name="JsonParser"></a><div class="titlepage"></div>
30 <div class="refnamediv"><table width="100%"><tr>
32 <h2><span class="refentrytitle"><a name="JsonParser.top_of_page"></a>JsonParser</span></h2>
33 <p>JsonParser — Parse JSON data streams</p>
35 <td class="gallery_image" valign="top" align="right"></td>
37 <div class="refsect1">
38 <a name="JsonParser.functions"></a><h2>Functions</h2>
39 <div class="informaltable"><table class="informaltable" width="100%" border="0">
41 <col width="150px" class="functions_return">
42 <col class="functions_name">
46 <td class="function_type">
47 <a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
49 <td class="function_name">
50 <a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a> <span class="c_punctuation">()</span>
54 <td class="function_type">
55 <a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
57 <td class="function_name">
58 <a class="link" href="JsonParser.html#json-parser-new-immutable" title="json_parser_new_immutable ()">json_parser_new_immutable</a> <span class="c_punctuation">()</span>
62 <td class="function_type">
63 <span class="returnvalue">gboolean</span>
65 <td class="function_name">
66 <a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a> <span class="c_punctuation">()</span>
70 <td class="function_type">
71 <span class="returnvalue">gboolean</span>
73 <td class="function_name">
74 <a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a> <span class="c_punctuation">()</span>
78 <td class="function_type">
79 <span class="returnvalue">gboolean</span>
81 <td class="function_name">
82 <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a> <span class="c_punctuation">()</span>
86 <td class="function_type">
87 <span class="returnvalue">void</span>
89 <td class="function_name">
90 <a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()">json_parser_load_from_stream_async</a> <span class="c_punctuation">()</span>
94 <td class="function_type">
95 <span class="returnvalue">gboolean</span>
97 <td class="function_name">
98 <a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()">json_parser_load_from_stream_finish</a> <span class="c_punctuation">()</span>
102 <td class="function_type">
103 <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
105 <td class="function_name">
106 <a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a> <span class="c_punctuation">()</span>
110 <td class="function_type">
111 <span class="returnvalue">guint</span>
113 <td class="function_name">
114 <a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a> <span class="c_punctuation">()</span>
118 <td class="function_type">
119 <span class="returnvalue">guint</span>
121 <td class="function_name">
122 <a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a> <span class="c_punctuation">()</span>
126 <td class="function_type">
127 <span class="returnvalue">gboolean</span>
129 <td class="function_name">
130 <a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a> <span class="c_punctuation">()</span>
136 <div class="refsect1">
137 <a name="JsonParser.properties"></a><h2>Properties</h2>
138 <div class="informaltable"><table class="informaltable" border="0">
140 <col width="150px" class="properties_type">
141 <col width="300px" class="properties_name">
142 <col width="200px" class="properties_flags">
145 <td class="property_type"><span class="type">gboolean</span></td>
146 <td class="property_name"><a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property">immutable</a></td>
147 <td class="property_flags">Read / Write / Construct Only</td>
151 <div class="refsect1">
152 <a name="JsonParser.signals"></a><h2>Signals</h2>
153 <div class="informaltable"><table class="informaltable" border="0">
155 <col width="150px" class="signals_return">
156 <col width="300px" class="signals_name">
157 <col width="200px" class="signals_flags">
161 <td class="signal_type"><span class="returnvalue">void</span></td>
162 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-element" title="The “array-element” signal">array-element</a></td>
163 <td class="signal_flags">Run Last</td>
166 <td class="signal_type"><span class="returnvalue">void</span></td>
167 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-end" title="The “array-end” signal">array-end</a></td>
168 <td class="signal_flags">Run Last</td>
171 <td class="signal_type"><span class="returnvalue">void</span></td>
172 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-array-start" title="The “array-start” signal">array-start</a></td>
173 <td class="signal_flags">Run Last</td>
176 <td class="signal_type"><span class="returnvalue">void</span></td>
177 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-error" title="The “error” signal">error</a></td>
178 <td class="signal_flags">Run Last</td>
181 <td class="signal_type"><span class="returnvalue">void</span></td>
182 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-end" title="The “object-end” signal">object-end</a></td>
183 <td class="signal_flags">Run Last</td>
186 <td class="signal_type"><span class="returnvalue">void</span></td>
187 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-member" title="The “object-member” signal">object-member</a></td>
188 <td class="signal_flags">Run Last</td>
191 <td class="signal_type"><span class="returnvalue">void</span></td>
192 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-object-start" title="The “object-start” signal">object-start</a></td>
193 <td class="signal_flags">Run Last</td>
196 <td class="signal_type"><span class="returnvalue">void</span></td>
197 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-parse-end" title="The “parse-end” signal">parse-end</a></td>
198 <td class="signal_flags">Run Last</td>
201 <td class="signal_type"><span class="returnvalue">void</span></td>
202 <td class="signal_name"><a class="link" href="JsonParser.html#JsonParser-parse-start" title="The “parse-start” signal">parse-start</a></td>
203 <td class="signal_flags">Run Last</td>
208 <div class="refsect1">
209 <a name="JsonParser.other"></a><h2>Types and Values</h2>
210 <div class="informaltable"><table class="informaltable" width="100%" border="0">
212 <col width="150px" class="name">
213 <col class="description">
217 <td class="datatype_keyword">enum</td>
218 <td class="function_name"><a class="link" href="JsonParser.html#JsonParserError" title="enum JsonParserError">JsonParserError</a></td>
221 <td class="datatype_keyword">struct</td>
222 <td class="function_name"><a class="link" href="JsonParser.html#JsonParser-struct" title="struct JsonParser">JsonParser</a></td>
225 <td class="datatype_keyword">struct</td>
226 <td class="function_name"><a class="link" href="JsonParser.html#JsonParserClass" title="struct JsonParserClass">JsonParserClass</a></td>
231 <div class="refsect1">
232 <a name="JsonParser.object-hierarchy"></a><h2>Object Hierarchy</h2>
233 <pre class="screen"> GObject
234 <span class="lineart">╰──</span> JsonParser
237 <div class="refsect1">
238 <a name="JsonParser.description"></a><h2>Description</h2>
239 <p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> provides an object for parsing a JSON data stream, either
240 inside a file or inside a static buffer.</p>
242 <div class="refsect1">
243 <a name="JsonParser.functions_details"></a><h2>Functions</h2>
244 <div class="refsect2">
245 <a name="json-parser-new"></a><h3>json_parser_new ()</h3>
246 <pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
247 json_parser_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
248 <p>Creates a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> instance. You can use the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> to
249 load a JSON stream from either a file or a buffer and then walk the
250 hierarchy using the data types API.</p>
251 <div class="refsect3">
252 <a name="json-parser-new.returns"></a><h4>Returns</h4>
253 <p> the newly created <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>. Use <code class="function">g_object_unref()</code>
254 to release all the memory it allocates.</p>
258 <div class="refsect2">
259 <a name="json-parser-new-immutable"></a><h3>json_parser_new_immutable ()</h3>
260 <pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
261 json_parser_new_immutable (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
262 <p>Creates a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> instance with its <a class="link" href="JsonParser.html#JsonParser--immutable" title="The “immutable” property"><span class="type">“immutable”</span></a> property
263 set to <code class="literal">TRUE</code> to create immutable output trees.</p>
264 <div class="refsect3">
265 <a name="json-parser-new-immutable.returns"></a><h4>Returns</h4>
266 <p> a new <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>. </p>
267 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
269 <p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
272 <div class="refsect2">
273 <a name="json-parser-load-from-file"></a><h3>json_parser_load_from_file ()</h3>
274 <pre class="programlisting"><span class="returnvalue">gboolean</span>
275 json_parser_load_from_file (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
276 <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
277 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
278 <p>Loads a JSON stream from the content of <em class="parameter"><code>filename</code></em>
280 <a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()"><code class="function">json_parser_load_from_data()</code></a>.</p>
281 <div class="refsect3">
282 <a name="json-parser-load-from-file.parameters"></a><h4>Parameters</h4>
283 <div class="informaltable"><table class="informaltable" width="100%" border="0">
285 <col width="150px" class="parameters_name">
286 <col class="parameters_description">
287 <col width="200px" class="parameters_annotations">
291 <td class="parameter_name"><p>parser</p></td>
292 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
293 <td class="parameter_annotations"> </td>
296 <td class="parameter_name"><p>filename</p></td>
297 <td class="parameter_description"><p>the path for the file to parse</p></td>
298 <td class="parameter_annotations"> </td>
301 <td class="parameter_name"><p>error</p></td>
302 <td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
303 <td class="parameter_annotations"> </td>
308 <div class="refsect3">
309 <a name="json-parser-load-from-file.returns"></a><h4>Returns</h4>
310 <p> <code class="literal">TRUE</code> if the file was successfully loaded and parsed.
311 In case of error, <em class="parameter"><code>error</code></em>
312 is set accordingly and <code class="literal">FALSE</code> is returned</p>
316 <div class="refsect2">
317 <a name="json-parser-load-from-data"></a><h3>json_parser_load_from_data ()</h3>
318 <pre class="programlisting"><span class="returnvalue">gboolean</span>
319 json_parser_load_from_data (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
320 <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
321 <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
322 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
323 <p>Loads a JSON stream from a buffer and parses it. You can call this function
324 multiple times with the same <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> object, but the contents of the
325 parser will be destroyed each time.</p>
326 <div class="refsect3">
327 <a name="json-parser-load-from-data.parameters"></a><h4>Parameters</h4>
328 <div class="informaltable"><table class="informaltable" width="100%" border="0">
330 <col width="150px" class="parameters_name">
331 <col class="parameters_description">
332 <col width="200px" class="parameters_annotations">
336 <td class="parameter_name"><p>parser</p></td>
337 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
338 <td class="parameter_annotations"> </td>
341 <td class="parameter_name"><p>data</p></td>
342 <td class="parameter_description"><p>the buffer to parse</p></td>
343 <td class="parameter_annotations"> </td>
346 <td class="parameter_name"><p>length</p></td>
347 <td class="parameter_description"><p>the length of the buffer, or -1</p></td>
348 <td class="parameter_annotations"> </td>
351 <td class="parameter_name"><p>error</p></td>
352 <td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
353 <td class="parameter_annotations"> </td>
358 <div class="refsect3">
359 <a name="json-parser-load-from-data.returns"></a><h4>Returns</h4>
360 <p> <code class="literal">TRUE</code> if the buffer was succesfully parser. In case
361 of error, <em class="parameter"><code>error</code></em>
362 is set accordingly and <code class="literal">FALSE</code> is returned</p>
366 <div class="refsect2">
367 <a name="json-parser-load-from-stream"></a><h3>json_parser_load_from_stream ()</h3>
368 <pre class="programlisting"><span class="returnvalue">gboolean</span>
369 json_parser_load_from_stream (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
370 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
371 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
372 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
373 <p>Loads the contents of an input stream and parses them.</p>
374 <p>If <em class="parameter"><code>cancellable</code></em>
375 is not <code class="literal">NULL</code>, then the operation can be cancelled by
376 triggering the <em class="parameter"><code>cancellable</code></em>
377 object from another thread. If the
378 operation was cancelled, the error <code class="literal">G_IO_ERROR_CANCELLED</code> will be set
379 on the passed <em class="parameter"><code>error</code></em>
381 <div class="refsect3">
382 <a name="json-parser-load-from-stream.parameters"></a><h4>Parameters</h4>
383 <div class="informaltable"><table class="informaltable" width="100%" border="0">
385 <col width="150px" class="parameters_name">
386 <col class="parameters_description">
387 <col width="200px" class="parameters_annotations">
391 <td class="parameter_name"><p>parser</p></td>
392 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
393 <td class="parameter_annotations"> </td>
396 <td class="parameter_name"><p>stream</p></td>
397 <td class="parameter_description"><p>an open <span class="type">GInputStream</span></p></td>
398 <td class="parameter_annotations"> </td>
401 <td class="parameter_name"><p>cancellable</p></td>
402 <td class="parameter_description"><p> a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
403 <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>
406 <td class="parameter_name"><p>error</p></td>
407 <td class="parameter_description"><p>the return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
408 <td class="parameter_annotations"> </td>
413 <div class="refsect3">
414 <a name="json-parser-load-from-stream.returns"></a><h4>Returns</h4>
415 <p> <code class="literal">TRUE</code> if the data stream was successfully read and
416 parsed, and <code class="literal">FALSE</code> otherwise</p>
418 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
421 <div class="refsect2">
422 <a name="json-parser-load-from-stream-async"></a><h3>json_parser_load_from_stream_async ()</h3>
423 <pre class="programlisting"><span class="returnvalue">void</span>
424 json_parser_load_from_stream_async (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
425 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
426 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
427 <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
428 <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
429 <p>Asynchronously reads the contents of <em class="parameter"><code>stream</code></em>
431 <p>For more details, see <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()"><code class="function">json_parser_load_from_stream()</code></a> which is the
432 synchronous version of this call.</p>
433 <p>When the operation is finished, <em class="parameter"><code>callback</code></em>
434 will be called. You should
435 then call <a class="link" href="JsonParser.html#json-parser-load-from-stream-finish" title="json_parser_load_from_stream_finish ()"><code class="function">json_parser_load_from_stream_finish()</code></a> to get the result
436 of the operation.</p>
437 <div class="refsect3">
438 <a name="json-parser-load-from-stream-async.parameters"></a><h4>Parameters</h4>
439 <div class="informaltable"><table class="informaltable" width="100%" border="0">
441 <col width="150px" class="parameters_name">
442 <col class="parameters_description">
443 <col width="200px" class="parameters_annotations">
447 <td class="parameter_name"><p>parser</p></td>
448 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
449 <td class="parameter_annotations"> </td>
452 <td class="parameter_name"><p>stream</p></td>
453 <td class="parameter_description"><p>a <span class="type">GInputStream</span></p></td>
454 <td class="parameter_annotations"> </td>
457 <td class="parameter_name"><p>cancellable</p></td>
458 <td class="parameter_description"><p> a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
459 <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>
462 <td class="parameter_name"><p>callback</p></td>
463 <td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied</p></td>
464 <td class="parameter_annotations"> </td>
467 <td class="parameter_name"><p>user_data</p></td>
468 <td class="parameter_description"><p>the data to pass to <em class="parameter"><code>callback</code></em>
470 <td class="parameter_annotations"> </td>
475 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
478 <div class="refsect2">
479 <a name="json-parser-load-from-stream-finish"></a><h3>json_parser_load_from_stream_finish ()</h3>
480 <pre class="programlisting"><span class="returnvalue">gboolean</span>
481 json_parser_load_from_stream_finish (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
482 <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
483 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
484 <p>Finishes an asynchronous stream loading started with
485 <a class="link" href="JsonParser.html#json-parser-load-from-stream-async" title="json_parser_load_from_stream_async ()"><code class="function">json_parser_load_from_stream_async()</code></a>.</p>
486 <div class="refsect3">
487 <a name="json-parser-load-from-stream-finish.parameters"></a><h4>Parameters</h4>
488 <div class="informaltable"><table class="informaltable" width="100%" border="0">
490 <col width="150px" class="parameters_name">
491 <col class="parameters_description">
492 <col width="200px" class="parameters_annotations">
496 <td class="parameter_name"><p>parser</p></td>
497 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
498 <td class="parameter_annotations"> </td>
501 <td class="parameter_name"><p>result</p></td>
502 <td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
503 <td class="parameter_annotations"> </td>
506 <td class="parameter_name"><p>error</p></td>
507 <td class="parameter_description"><p>the return location for a <span class="type">GError</span> or <code class="literal">NULL</code></p></td>
508 <td class="parameter_annotations"> </td>
513 <div class="refsect3">
514 <a name="json-parser-load-from-stream-finish.returns"></a><h4>Returns</h4>
515 <p> <code class="literal">TRUE</code> if the content of the stream was successfully retrieves
516 and parsed, and <code class="literal">FALSE</code> otherwise. In case of error, the <span class="type">GError</span> will be
517 filled accordingly.</p>
519 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
522 <div class="refsect2">
523 <a name="json-parser-get-root"></a><h3>json_parser_get_root ()</h3>
524 <pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
525 json_parser_get_root (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
526 <p>Retrieves the top level node from the parsed JSON stream.</p>
527 <div class="refsect3">
528 <a name="json-parser-get-root.parameters"></a><h4>Parameters</h4>
529 <div class="informaltable"><table class="informaltable" width="100%" border="0">
531 <col width="150px" class="parameters_name">
532 <col class="parameters_description">
533 <col width="200px" class="parameters_annotations">
536 <td class="parameter_name"><p>parser</p></td>
537 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
538 <td class="parameter_annotations"> </td>
542 <div class="refsect3">
543 <a name="json-parser-get-root.returns"></a><h4>Returns</h4>
544 <p> the root <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> . The returned
545 node is owned by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should never be modified
547 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
551 <div class="refsect2">
552 <a name="json-parser-get-current-line"></a><h3>json_parser_get_current_line ()</h3>
553 <pre class="programlisting"><span class="returnvalue">guint</span>
554 json_parser_get_current_line (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
555 <p>Retrieves the line currently parsed, starting from 1.</p>
556 <p>This function has defined behaviour only while parsing; calling this
557 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
559 <div class="refsect3">
560 <a name="json-parser-get-current-line.parameters"></a><h4>Parameters</h4>
561 <div class="informaltable"><table class="informaltable" width="100%" border="0">
563 <col width="150px" class="parameters_name">
564 <col class="parameters_description">
565 <col width="200px" class="parameters_annotations">
568 <td class="parameter_name"><p>parser</p></td>
569 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
570 <td class="parameter_annotations"> </td>
574 <div class="refsect3">
575 <a name="json-parser-get-current-line.returns"></a><h4>Returns</h4>
576 <p> the currently parsed line, or 0.</p>
580 <div class="refsect2">
581 <a name="json-parser-get-current-pos"></a><h3>json_parser_get_current_pos ()</h3>
582 <pre class="programlisting"><span class="returnvalue">guint</span>
583 json_parser_get_current_pos (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);</pre>
584 <p>Retrieves the current position inside the current line, starting
586 <p>This function has defined behaviour only while parsing; calling this
587 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
589 <div class="refsect3">
590 <a name="json-parser-get-current-pos.parameters"></a><h4>Parameters</h4>
591 <div class="informaltable"><table class="informaltable" width="100%" border="0">
593 <col width="150px" class="parameters_name">
594 <col class="parameters_description">
595 <col width="200px" class="parameters_annotations">
598 <td class="parameter_name"><p>parser</p></td>
599 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
600 <td class="parameter_annotations"> </td>
604 <div class="refsect3">
605 <a name="json-parser-get-current-pos.returns"></a><h4>Returns</h4>
606 <p> the position in the current line, or 0.</p>
610 <div class="refsect2">
611 <a name="json-parser-has-assignment"></a><h3>json_parser_has_assignment ()</h3>
612 <pre class="programlisting"><span class="returnvalue">gboolean</span>
613 json_parser_has_assignment (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
614 <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);</pre>
615 <p>A JSON data stream might sometimes contain an assignment, like:</p>
616 <div class="informalexample">
617 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
620 <td class="listing_lines" align="right"><pre>1</pre></td>
621 <td class="listing_code"><pre class="programlisting"><span class="usertype">var</span><span class="normal"> _json_data </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"member_name"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">[</span><span class="normal"> </span><span class="symbol">...</span></pre></td>
628 <p>even though it would technically constitute a violation of the RFC.</p>
629 <p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will ignore the left hand identifier and parse the right
630 hand value of the assignment. <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will record, though, the
631 existence of the assignment in the data stream and the variable name
633 <div class="refsect3">
634 <a name="json-parser-has-assignment.parameters"></a><h4>Parameters</h4>
635 <div class="informaltable"><table class="informaltable" width="100%" border="0">
637 <col width="150px" class="parameters_name">
638 <col class="parameters_description">
639 <col width="200px" class="parameters_annotations">
643 <td class="parameter_name"><p>parser</p></td>
644 <td class="parameter_description"><p>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p></td>
645 <td class="parameter_annotations"> </td>
648 <td class="parameter_name"><p>variable_name</p></td>
649 <td class="parameter_description"><p> Return location for the variable
650 name, or <code class="literal">NULL</code>. </p></td>
651 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
656 <div class="refsect3">
657 <a name="json-parser-has-assignment.returns"></a><h4>Returns</h4>
658 <p> <code class="literal">TRUE</code> if there was an assignment, <code class="literal">FALSE</code> otherwise. If
659 <em class="parameter"><code>variable_name</code></em>
660 is not <code class="literal">NULL</code> it will be set to the name of the variable
661 used in the assignment. The string is owned by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should
662 never be modified or freed.</p>
664 <p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
667 <div class="refsect1">
668 <a name="JsonParser.other_details"></a><h2>Types and Values</h2>
669 <div class="refsect2">
670 <a name="JsonParserError"></a><h3>enum JsonParserError</h3>
671 <p>Error enumeration for <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a></p>
672 <p>This enumeration can be extended at later date</p>
673 <div class="refsect3">
674 <a name="JsonParserError.members"></a><h4>Members</h4>
675 <div class="informaltable"><table class="informaltable" width="100%" border="0">
677 <col width="300px" class="enum_members_name">
678 <col class="enum_members_description">
679 <col width="200px" class="enum_members_annotations">
683 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-PARSE:CAPS"></a>JSON_PARSER_ERROR_PARSE</p></td>
684 <td class="enum_member_description">
687 <td class="enum_member_annotations"> </td>
690 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS"></a>JSON_PARSER_ERROR_TRAILING_COMMA</p></td>
691 <td class="enum_member_description">
692 <p>unexpected trailing comma</p>
694 <td class="enum_member_annotations"> </td>
697 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-MISSING-COMMA:CAPS"></a>JSON_PARSER_ERROR_MISSING_COMMA</p></td>
698 <td class="enum_member_description">
699 <p>expected comma</p>
701 <td class="enum_member_annotations"> </td>
704 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-MISSING-COLON:CAPS"></a>JSON_PARSER_ERROR_MISSING_COLON</p></td>
705 <td class="enum_member_description">
706 <p>expected colon</p>
708 <td class="enum_member_annotations"> </td>
711 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS"></a>JSON_PARSER_ERROR_INVALID_BAREWORD</p></td>
712 <td class="enum_member_description">
713 <p>invalid bareword</p>
715 <td class="enum_member_annotations"> </td>
718 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-EMPTY-MEMBER-NAME:CAPS"></a>JSON_PARSER_ERROR_EMPTY_MEMBER_NAME</p></td>
719 <td class="enum_member_description">
720 <p>empty member name (Since: 0.16)</p>
722 <td class="enum_member_annotations"> </td>
725 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-INVALID-DATA:CAPS"></a>JSON_PARSER_ERROR_INVALID_DATA</p></td>
726 <td class="enum_member_description">
727 <p>invalid data (Since: 0.18)</p>
729 <td class="enum_member_annotations"> </td>
732 <td class="enum_member_name"><p><a name="JSON-PARSER-ERROR-UNKNOWN:CAPS"></a>JSON_PARSER_ERROR_UNKNOWN</p></td>
733 <td class="enum_member_description">
736 <td class="enum_member_annotations"> </td>
743 <div class="refsect2">
744 <a name="JsonParser-struct"></a><h3>struct JsonParser</h3>
745 <pre class="programlisting">struct JsonParser;</pre>
746 <p>JSON data streams parser. The contents of the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> structure are
747 private and should only be accessed via the provided API.</p>
750 <div class="refsect2">
751 <a name="JsonParserClass"></a><h3>struct JsonParserClass</h3>
752 <pre class="programlisting">struct JsonParserClass {
753 void (* parse_start) (JsonParser *parser);
755 void (* object_start) (JsonParser *parser);
756 void (* object_member) (JsonParser *parser,
758 const gchar *member_name);
759 void (* object_end) (JsonParser *parser,
762 void (* array_start) (JsonParser *parser);
763 void (* array_element) (JsonParser *parser,
766 void (* array_end) (JsonParser *parser,
769 void (* parse_end) (JsonParser *parser);
771 void (* error) (JsonParser *parser,
772 const GError *error);
775 <p><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> class.</p>
776 <div class="refsect3">
777 <a name="JsonParserClass.members"></a><h4>Members</h4>
778 <div class="informaltable"><table class="informaltable" width="100%" border="0">
780 <col width="300px" class="struct_members_name">
781 <col class="struct_members_description">
782 <col width="200px" class="struct_members_annotations">
786 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.parse-start"></a>parse_start</code></em> ()</p></td>
787 <td class="struct_member_description"><p>class handler for the JsonParser::parse-start signal</p></td>
788 <td class="struct_member_annotations"> </td>
791 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-start"></a>object_start</code></em> ()</p></td>
792 <td class="struct_member_description"><p>class handler for the JsonParser::object-start signal</p></td>
793 <td class="struct_member_annotations"> </td>
796 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-member"></a>object_member</code></em> ()</p></td>
797 <td class="struct_member_description"><p>class handler for the JsonParser::object-member signal</p></td>
798 <td class="struct_member_annotations"> </td>
801 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.object-end"></a>object_end</code></em> ()</p></td>
802 <td class="struct_member_description"><p>class handler for the JsonParser::object-end signal</p></td>
803 <td class="struct_member_annotations"> </td>
806 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-start"></a>array_start</code></em> ()</p></td>
807 <td class="struct_member_description"><p>class handler for the JsonParser::array-start signal</p></td>
808 <td class="struct_member_annotations"> </td>
811 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-element"></a>array_element</code></em> ()</p></td>
812 <td class="struct_member_description"><p>class handler for the JsonParser::array-element signal</p></td>
813 <td class="struct_member_annotations"> </td>
816 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.array-end"></a>array_end</code></em> ()</p></td>
817 <td class="struct_member_description"><p>class handler for the JsonParser::array-end signal</p></td>
818 <td class="struct_member_annotations"> </td>
821 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.parse-end"></a>parse_end</code></em> ()</p></td>
822 <td class="struct_member_description"><p>class handler for the JsonParser::parse-end signal</p></td>
823 <td class="struct_member_annotations"> </td>
826 <td class="struct_member_name"><p><em class="structfield"><code><a name="JsonParserClass.error"></a>error</code></em> ()</p></td>
827 <td class="struct_member_description"><p>class handler for the JsonParser::error signal</p></td>
828 <td class="struct_member_annotations"> </td>
835 <div class="refsect1">
836 <a name="JsonParser.property-details"></a><h2>Property Details</h2>
837 <div class="refsect2">
838 <a name="JsonParser--immutable"></a><h3>The <code class="literal">“immutable”</code> property</h3>
839 <pre class="programlisting"> “immutable” <span class="type">gboolean</span></pre>
840 <p>Whether the <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> tree built by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> should be immutable
841 when created. Making the output immutable on creation avoids the expense
842 of traversing it to make it immutable later.</p>
843 <p>Flags: Read / Write / Construct Only</p>
844 <p>Default value: FALSE</p>
845 <p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
848 <div class="refsect1">
849 <a name="JsonParser.signal-details"></a><h2>Signal Details</h2>
850 <div class="refsect2">
851 <a name="JsonParser-array-element"></a><h3>The <code class="literal">“array-element”</code> signal</h3>
852 <pre class="programlisting"><span class="returnvalue">void</span>
853 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
854 <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array,
855 <span class="type">gint</span> index_,
856 <span class="type">gpointer</span> user_data)</pre>
857 <p>The ::array-element signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
858 has successfully parsed a single element of a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a>. The
859 array and element index are passed to the signal handlers.</p>
860 <div class="refsect3">
861 <a name="JsonParser-array-element.parameters"></a><h4>Parameters</h4>
862 <div class="informaltable"><table class="informaltable" width="100%" border="0">
864 <col width="150px" class="parameters_name">
865 <col class="parameters_description">
866 <col width="200px" class="parameters_annotations">
870 <td class="parameter_name"><p>parser</p></td>
871 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
872 <td class="parameter_annotations"> </td>
875 <td class="parameter_name"><p>array</p></td>
876 <td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
877 <td class="parameter_annotations"> </td>
880 <td class="parameter_name"><p>index_</p></td>
881 <td class="parameter_description"><p>the index of the newly parsed element</p></td>
882 <td class="parameter_annotations"> </td>
885 <td class="parameter_name"><p>user_data</p></td>
886 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
887 <td class="parameter_annotations"> </td>
892 <p>Flags: Run Last</p>
895 <div class="refsect2">
896 <a name="JsonParser-array-end"></a><h3>The <code class="literal">“array-end”</code> signal</h3>
897 <pre class="programlisting"><span class="returnvalue">void</span>
898 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
899 <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a> *array,
900 <span class="type">gpointer</span> user_data)</pre>
901 <p>The ::array-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
902 has successfully parsed an entire <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
903 <div class="refsect3">
904 <a name="JsonParser-array-end.parameters"></a><h4>Parameters</h4>
905 <div class="informaltable"><table class="informaltable" width="100%" border="0">
907 <col width="150px" class="parameters_name">
908 <col class="parameters_description">
909 <col width="200px" class="parameters_annotations">
913 <td class="parameter_name"><p>parser</p></td>
914 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
915 <td class="parameter_annotations"> </td>
918 <td class="parameter_name"><p>array</p></td>
919 <td class="parameter_description"><p>the parsed <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p></td>
920 <td class="parameter_annotations"> </td>
923 <td class="parameter_name"><p>user_data</p></td>
924 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
925 <td class="parameter_annotations"> </td>
930 <p>Flags: Run Last</p>
933 <div class="refsect2">
934 <a name="JsonParser-array-start"></a><h3>The <code class="literal">“array-start”</code> signal</h3>
935 <pre class="programlisting"><span class="returnvalue">void</span>
936 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
937 <span class="type">gpointer</span> user_data)</pre>
938 <p>The ::array-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
939 starts parsing a <a class="link" href="json-glib-JSON-Array.html#JsonArray"><span class="type">JsonArray</span></a></p>
940 <div class="refsect3">
941 <a name="JsonParser-array-start.parameters"></a><h4>Parameters</h4>
942 <div class="informaltable"><table class="informaltable" width="100%" border="0">
944 <col width="150px" class="parameters_name">
945 <col class="parameters_description">
946 <col width="200px" class="parameters_annotations">
950 <td class="parameter_name"><p>parser</p></td>
951 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
952 <td class="parameter_annotations"> </td>
955 <td class="parameter_name"><p>user_data</p></td>
956 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
957 <td class="parameter_annotations"> </td>
962 <p>Flags: Run Last</p>
965 <div class="refsect2">
966 <a name="JsonParser-error"></a><h3>The <code class="literal">“error”</code> signal</h3>
967 <pre class="programlisting"><span class="returnvalue">void</span>
968 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
969 <span class="type">gpointer</span> error,
970 <span class="type">gpointer</span> user_data)</pre>
971 <p>The ::error signal is emitted each time a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> encounters
972 an error in a JSON stream.</p>
973 <div class="refsect3">
974 <a name="JsonParser-error.parameters"></a><h4>Parameters</h4>
975 <div class="informaltable"><table class="informaltable" width="100%" border="0">
977 <col width="150px" class="parameters_name">
978 <col class="parameters_description">
979 <col width="200px" class="parameters_annotations">
983 <td class="parameter_name"><p>parser</p></td>
984 <td class="parameter_description"><p>the parser instance that received the signal</p></td>
985 <td class="parameter_annotations"> </td>
988 <td class="parameter_name"><p>error</p></td>
989 <td class="parameter_description"><p>a pointer to the <span class="type">GError</span></p></td>
990 <td class="parameter_annotations"> </td>
993 <td class="parameter_name"><p>user_data</p></td>
994 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
995 <td class="parameter_annotations"> </td>
1000 <p>Flags: Run Last</p>
1003 <div class="refsect2">
1004 <a name="JsonParser-object-end"></a><h3>The <code class="literal">“object-end”</code> signal</h3>
1005 <pre class="programlisting"><span class="returnvalue">void</span>
1006 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
1007 <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object,
1008 <span class="type">gpointer</span> user_data)</pre>
1009 <p>The ::object-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
1010 has successfully parsed an entire <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
1011 <div class="refsect3">
1012 <a name="JsonParser-object-end.parameters"></a><h4>Parameters</h4>
1013 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1015 <col width="150px" class="parameters_name">
1016 <col class="parameters_description">
1017 <col width="200px" class="parameters_annotations">
1021 <td class="parameter_name"><p>parser</p></td>
1022 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
1023 <td class="parameter_annotations"> </td>
1026 <td class="parameter_name"><p>object</p></td>
1027 <td class="parameter_description"><p>the parsed <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
1028 <td class="parameter_annotations"> </td>
1031 <td class="parameter_name"><p>user_data</p></td>
1032 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
1033 <td class="parameter_annotations"> </td>
1038 <p>Flags: Run Last</p>
1041 <div class="refsect2">
1042 <a name="JsonParser-object-member"></a><h3>The <code class="literal">“object-member”</code> signal</h3>
1043 <pre class="programlisting"><span class="returnvalue">void</span>
1044 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
1045 <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a> *object,
1046 <span class="type">gchar</span> *member_name,
1047 <span class="type">gpointer</span> user_data)</pre>
1048 <p>The ::object-member signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
1049 has successfully parsed a single member of a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>. The
1050 object and member are passed to the signal handlers.</p>
1051 <div class="refsect3">
1052 <a name="JsonParser-object-member.parameters"></a><h4>Parameters</h4>
1053 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1055 <col width="150px" class="parameters_name">
1056 <col class="parameters_description">
1057 <col width="200px" class="parameters_annotations">
1061 <td class="parameter_name"><p>parser</p></td>
1062 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
1063 <td class="parameter_annotations"> </td>
1066 <td class="parameter_name"><p>object</p></td>
1067 <td class="parameter_description"><p>a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a></p></td>
1068 <td class="parameter_annotations"> </td>
1071 <td class="parameter_name"><p>member_name</p></td>
1072 <td class="parameter_description"><p>the name of the newly parsed member</p></td>
1073 <td class="parameter_annotations"> </td>
1076 <td class="parameter_name"><p>user_data</p></td>
1077 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
1078 <td class="parameter_annotations"> </td>
1083 <p>Flags: Run Last</p>
1086 <div class="refsect2">
1087 <a name="JsonParser-object-start"></a><h3>The <code class="literal">“object-start”</code> signal</h3>
1088 <pre class="programlisting"><span class="returnvalue">void</span>
1089 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
1090 <span class="type">gpointer</span> user_data)</pre>
1091 <p>The ::object-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
1092 starts parsing a <a class="link" href="json-glib-JSON-Object.html#JsonObject"><span class="type">JsonObject</span></a>.</p>
1093 <div class="refsect3">
1094 <a name="JsonParser-object-start.parameters"></a><h4>Parameters</h4>
1095 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1097 <col width="150px" class="parameters_name">
1098 <col class="parameters_description">
1099 <col width="200px" class="parameters_annotations">
1103 <td class="parameter_name"><p>parser</p></td>
1104 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
1105 <td class="parameter_annotations"> </td>
1108 <td class="parameter_name"><p>user_data</p></td>
1109 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
1110 <td class="parameter_annotations"> </td>
1115 <p>Flags: Run Last</p>
1118 <div class="refsect2">
1119 <a name="JsonParser-parse-end"></a><h3>The <code class="literal">“parse-end”</code> signal</h3>
1120 <pre class="programlisting"><span class="returnvalue">void</span>
1121 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
1122 <span class="type">gpointer</span> user_data)</pre>
1123 <p>The ::parse-end signal is emitted when the parser successfully
1124 finished parsing a JSON data stream</p>
1125 <div class="refsect3">
1126 <a name="JsonParser-parse-end.parameters"></a><h4>Parameters</h4>
1127 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1129 <col width="150px" class="parameters_name">
1130 <col class="parameters_description">
1131 <col width="200px" class="parameters_annotations">
1135 <td class="parameter_name"><p>parser</p></td>
1136 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
1137 <td class="parameter_annotations"> </td>
1140 <td class="parameter_name"><p>user_data</p></td>
1141 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
1142 <td class="parameter_annotations"> </td>
1147 <p>Flags: Run Last</p>
1150 <div class="refsect2">
1151 <a name="JsonParser-parse-start"></a><h3>The <code class="literal">“parse-start”</code> signal</h3>
1152 <pre class="programlisting"><span class="returnvalue">void</span>
1153 user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
1154 <span class="type">gpointer</span> user_data)</pre>
1155 <p>The ::parse-start signal is emitted when the parser began parsing
1156 a JSON data stream.</p>
1157 <div class="refsect3">
1158 <a name="JsonParser-parse-start.parameters"></a><h4>Parameters</h4>
1159 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1161 <col width="150px" class="parameters_name">
1162 <col class="parameters_description">
1163 <col width="200px" class="parameters_annotations">
1167 <td class="parameter_name"><p>parser</p></td>
1168 <td class="parameter_description"><p>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</p></td>
1169 <td class="parameter_annotations"> </td>
1172 <td class="parameter_name"><p>user_data</p></td>
1173 <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
1174 <td class="parameter_annotations"> </td>
1179 <p>Flags: Run Last</p>
1183 <div class="footer">
1184 <hr>Generated by GTK-Doc V1.25.1</div>