Imported Upstream version 1.2.4
[platform/upstream/json-glib.git] / doc / reference / html / JsonParser.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>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">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="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>
22 </td>
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>
27 </tr></table>
28 <div class="refentry">
29 <a name="JsonParser"></a><div class="titlepage"></div>
30 <div class="refnamediv"><table width="100%"><tr>
31 <td valign="top">
32 <h2><span class="refentrytitle"><a name="JsonParser.top_of_page"></a>JsonParser</span></h2>
33 <p>JsonParser — Parse JSON data streams</p>
34 </td>
35 <td class="gallery_image" valign="top" align="right"></td>
36 </tr></table></div>
37 <div class="refsect1">
38 <a name="JsonParser.functions"></a><h2>Functions</h2>
39 <div class="informaltable"><table class="informaltable" width="100%" border="0">
40 <colgroup>
41 <col width="150px" class="functions_return">
42 <col class="functions_name">
43 </colgroup>
44 <tbody>
45 <tr>
46 <td class="function_type">
47 <a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
48 </td>
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>
51 </td>
52 </tr>
53 <tr>
54 <td class="function_type">
55 <a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> *
56 </td>
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>
59 </td>
60 </tr>
61 <tr>
62 <td class="function_type">
63 <span class="returnvalue">gboolean</span>
64 </td>
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>
67 </td>
68 </tr>
69 <tr>
70 <td class="function_type">
71 <span class="returnvalue">gboolean</span>
72 </td>
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>
75 </td>
76 </tr>
77 <tr>
78 <td class="function_type">
79 <span class="returnvalue">gboolean</span>
80 </td>
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>
83 </td>
84 </tr>
85 <tr>
86 <td class="function_type">
87 <span class="returnvalue">void</span>
88 </td>
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>
91 </td>
92 </tr>
93 <tr>
94 <td class="function_type">
95 <span class="returnvalue">gboolean</span>
96 </td>
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>
99 </td>
100 </tr>
101 <tr>
102 <td class="function_type">
103 <a class="link" href="json-glib-JSON-Node.html#JsonNode"><span class="returnvalue">JsonNode</span></a> *
104 </td>
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>
107 </td>
108 </tr>
109 <tr>
110 <td class="function_type">
111 <span class="returnvalue">guint</span>
112 </td>
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>
115 </td>
116 </tr>
117 <tr>
118 <td class="function_type">
119 <span class="returnvalue">guint</span>
120 </td>
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>
123 </td>
124 </tr>
125 <tr>
126 <td class="function_type">
127 <span class="returnvalue">gboolean</span>
128 </td>
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>
131 </td>
132 </tr>
133 </tbody>
134 </table></div>
135 </div>
136 <div class="refsect1">
137 <a name="JsonParser.properties"></a><h2>Properties</h2>
138 <div class="informaltable"><table class="informaltable" border="0">
139 <colgroup>
140 <col width="150px" class="properties_type">
141 <col width="300px" class="properties_name">
142 <col width="200px" class="properties_flags">
143 </colgroup>
144 <tbody><tr>
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>
148 </tr></tbody>
149 </table></div>
150 </div>
151 <div class="refsect1">
152 <a name="JsonParser.signals"></a><h2>Signals</h2>
153 <div class="informaltable"><table class="informaltable" border="0">
154 <colgroup>
155 <col width="150px" class="signals_return">
156 <col width="300px" class="signals_name">
157 <col width="200px" class="signals_flags">
158 </colgroup>
159 <tbody>
160 <tr>
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>
164 </tr>
165 <tr>
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>
169 </tr>
170 <tr>
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>
174 </tr>
175 <tr>
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>
179 </tr>
180 <tr>
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>
184 </tr>
185 <tr>
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>
189 </tr>
190 <tr>
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>
194 </tr>
195 <tr>
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>
199 </tr>
200 <tr>
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>
204 </tr>
205 </tbody>
206 </table></div>
207 </div>
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">
211 <colgroup>
212 <col width="150px" class="name">
213 <col class="description">
214 </colgroup>
215 <tbody>
216 <tr>
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>
219 </tr>
220 <tr>
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>
223 </tr>
224 <tr>
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>
227 </tr>
228 </tbody>
229 </table></div>
230 </div>
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
235 </pre>
236 </div>
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>
241 </div>
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>
255 </div>
256 </div>
257 <hr>
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>
268 </div>
269 <p class="since">Since: <a class="link" href="ix11.html#api-index-1.2">1.2</a></p>
270 </div>
271 <hr>
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>
279  and parses it. See
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">
284 <colgroup>
285 <col width="150px" class="parameters_name">
286 <col class="parameters_description">
287 <col width="200px" class="parameters_annotations">
288 </colgroup>
289 <tbody>
290 <tr>
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>
294 </tr>
295 <tr>
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>
299 </tr>
300 <tr>
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>
304 </tr>
305 </tbody>
306 </table></div>
307 </div>
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>
313 </div>
314 </div>
315 <hr>
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">
329 <colgroup>
330 <col width="150px" class="parameters_name">
331 <col class="parameters_description">
332 <col width="200px" class="parameters_annotations">
333 </colgroup>
334 <tbody>
335 <tr>
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>
339 </tr>
340 <tr>
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>
344 </tr>
345 <tr>
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>
349 </tr>
350 <tr>
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>
354 </tr>
355 </tbody>
356 </table></div>
357 </div>
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>
363 </div>
364 </div>
365 <hr>
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>
380 .</p>
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">
384 <colgroup>
385 <col width="150px" class="parameters_name">
386 <col class="parameters_description">
387 <col width="200px" class="parameters_annotations">
388 </colgroup>
389 <tbody>
390 <tr>
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>
394 </tr>
395 <tr>
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>
399 </tr>
400 <tr>
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>
404 </tr>
405 <tr>
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>
409 </tr>
410 </tbody>
411 </table></div>
412 </div>
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>
417 </div>
418 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
419 </div>
420 <hr>
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>
430 .</p>
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">
440 <colgroup>
441 <col width="150px" class="parameters_name">
442 <col class="parameters_description">
443 <col width="200px" class="parameters_annotations">
444 </colgroup>
445 <tbody>
446 <tr>
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>
450 </tr>
451 <tr>
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>
455 </tr>
456 <tr>
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>
460 </tr>
461 <tr>
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>
465 </tr>
466 <tr>
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>
469 </p></td>
470 <td class="parameter_annotations"> </td>
471 </tr>
472 </tbody>
473 </table></div>
474 </div>
475 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
476 </div>
477 <hr>
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">
489 <colgroup>
490 <col width="150px" class="parameters_name">
491 <col class="parameters_description">
492 <col width="200px" class="parameters_annotations">
493 </colgroup>
494 <tbody>
495 <tr>
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>
499 </tr>
500 <tr>
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>
504 </tr>
505 <tr>
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>
509 </tr>
510 </tbody>
511 </table></div>
512 </div>
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>
518 </div>
519 <p class="since">Since: <a class="link" href="ix07.html#api-index-0.12">0.12</a></p>
520 </div>
521 <hr>
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">
530 <colgroup>
531 <col width="150px" class="parameters_name">
532 <col class="parameters_description">
533 <col width="200px" class="parameters_annotations">
534 </colgroup>
535 <tbody><tr>
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>
539 </tr></tbody>
540 </table></div>
541 </div>
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
546 or freed. </p>
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>
548 </div>
549 </div>
550 <hr>
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
558 yield 0.</p>
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">
562 <colgroup>
563 <col width="150px" class="parameters_name">
564 <col class="parameters_description">
565 <col width="200px" class="parameters_annotations">
566 </colgroup>
567 <tbody><tr>
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>
571 </tr></tbody>
572 </table></div>
573 </div>
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>
577 </div>
578 </div>
579 <hr>
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
585 from 0.</p>
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
588 yield 0.</p>
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">
592 <colgroup>
593 <col width="150px" class="parameters_name">
594 <col class="parameters_description">
595 <col width="200px" class="parameters_annotations">
596 </colgroup>
597 <tbody><tr>
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>
601 </tr></tbody>
602 </table></div>
603 </div>
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>
607 </div>
608 </div>
609 <hr>
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">
618     <tbody>
619       <tr>
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>
622       </tr>
623     </tbody>
624   </table>
625 </div>
626
627 <p></p>
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
632 used.</p>
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">
636 <colgroup>
637 <col width="150px" class="parameters_name">
638 <col class="parameters_description">
639 <col width="200px" class="parameters_annotations">
640 </colgroup>
641 <tbody>
642 <tr>
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>
646 </tr>
647 <tr>
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>
652 </tr>
653 </tbody>
654 </table></div>
655 </div>
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>
663 </div>
664 <p class="since">Since: <a class="link" href="ix03.html#api-index-0.4">0.4</a></p>
665 </div>
666 </div>
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">
676 <colgroup>
677 <col width="300px" class="enum_members_name">
678 <col class="enum_members_description">
679 <col width="200px" class="enum_members_annotations">
680 </colgroup>
681 <tbody>
682 <tr>
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">
685 <p>parse error</p>
686 </td>
687 <td class="enum_member_annotations"> </td>
688 </tr>
689 <tr>
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>
693 </td>
694 <td class="enum_member_annotations"> </td>
695 </tr>
696 <tr>
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>
700 </td>
701 <td class="enum_member_annotations"> </td>
702 </tr>
703 <tr>
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>
707 </td>
708 <td class="enum_member_annotations"> </td>
709 </tr>
710 <tr>
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>
714 </td>
715 <td class="enum_member_annotations"> </td>
716 </tr>
717 <tr>
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>
721 </td>
722 <td class="enum_member_annotations"> </td>
723 </tr>
724 <tr>
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>
728 </td>
729 <td class="enum_member_annotations"> </td>
730 </tr>
731 <tr>
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">
734 <p>unknown error</p>
735 </td>
736 <td class="enum_member_annotations"> </td>
737 </tr>
738 </tbody>
739 </table></div>
740 </div>
741 </div>
742 <hr>
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>
748 </div>
749 <hr>
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);
754
755   void (* object_start)  (JsonParser   *parser);
756   void (* object_member) (JsonParser   *parser,
757                           JsonObject   *object,
758                           const gchar  *member_name);
759   void (* object_end)    (JsonParser   *parser,
760                           JsonObject   *object);
761
762   void (* array_start)   (JsonParser   *parser);
763   void (* array_element) (JsonParser   *parser,
764                           JsonArray    *array,
765                           gint          index_);
766   void (* array_end)     (JsonParser   *parser,
767                           JsonArray    *array);
768
769   void (* parse_end)     (JsonParser   *parser);
770   
771   void (* error)         (JsonParser   *parser,
772                           const GError *error);
773 };
774 </pre>
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">
779 <colgroup>
780 <col width="300px" class="struct_members_name">
781 <col class="struct_members_description">
782 <col width="200px" class="struct_members_annotations">
783 </colgroup>
784 <tbody>
785 <tr>
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>
789 </tr>
790 <tr>
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>
794 </tr>
795 <tr>
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>
799 </tr>
800 <tr>
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>
804 </tr>
805 <tr>
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>
809 </tr>
810 <tr>
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>
814 </tr>
815 <tr>
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>
819 </tr>
820 <tr>
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>
824 </tr>
825 <tr>
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>
829 </tr>
830 </tbody>
831 </table></div>
832 </div>
833 </div>
834 </div>
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>
846 </div>
847 </div>
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">
863 <colgroup>
864 <col width="150px" class="parameters_name">
865 <col class="parameters_description">
866 <col width="200px" class="parameters_annotations">
867 </colgroup>
868 <tbody>
869 <tr>
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>
873 </tr>
874 <tr>
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>
878 </tr>
879 <tr>
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>
883 </tr>
884 <tr>
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>
888 </tr>
889 </tbody>
890 </table></div>
891 </div>
892 <p>Flags: Run Last</p>
893 </div>
894 <hr>
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">
906 <colgroup>
907 <col width="150px" class="parameters_name">
908 <col class="parameters_description">
909 <col width="200px" class="parameters_annotations">
910 </colgroup>
911 <tbody>
912 <tr>
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>
916 </tr>
917 <tr>
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>
921 </tr>
922 <tr>
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>
926 </tr>
927 </tbody>
928 </table></div>
929 </div>
930 <p>Flags: Run Last</p>
931 </div>
932 <hr>
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">
943 <colgroup>
944 <col width="150px" class="parameters_name">
945 <col class="parameters_description">
946 <col width="200px" class="parameters_annotations">
947 </colgroup>
948 <tbody>
949 <tr>
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>
953 </tr>
954 <tr>
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>
958 </tr>
959 </tbody>
960 </table></div>
961 </div>
962 <p>Flags: Run Last</p>
963 </div>
964 <hr>
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">
976 <colgroup>
977 <col width="150px" class="parameters_name">
978 <col class="parameters_description">
979 <col width="200px" class="parameters_annotations">
980 </colgroup>
981 <tbody>
982 <tr>
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>
986 </tr>
987 <tr>
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>
991 </tr>
992 <tr>
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>
996 </tr>
997 </tbody>
998 </table></div>
999 </div>
1000 <p>Flags: Run Last</p>
1001 </div>
1002 <hr>
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">
1014 <colgroup>
1015 <col width="150px" class="parameters_name">
1016 <col class="parameters_description">
1017 <col width="200px" class="parameters_annotations">
1018 </colgroup>
1019 <tbody>
1020 <tr>
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>
1024 </tr>
1025 <tr>
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>
1029 </tr>
1030 <tr>
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>
1034 </tr>
1035 </tbody>
1036 </table></div>
1037 </div>
1038 <p>Flags: Run Last</p>
1039 </div>
1040 <hr>
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">
1054 <colgroup>
1055 <col width="150px" class="parameters_name">
1056 <col class="parameters_description">
1057 <col width="200px" class="parameters_annotations">
1058 </colgroup>
1059 <tbody>
1060 <tr>
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>
1064 </tr>
1065 <tr>
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>
1069 </tr>
1070 <tr>
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>
1074 </tr>
1075 <tr>
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>
1079 </tr>
1080 </tbody>
1081 </table></div>
1082 </div>
1083 <p>Flags: Run Last</p>
1084 </div>
1085 <hr>
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">
1096 <colgroup>
1097 <col width="150px" class="parameters_name">
1098 <col class="parameters_description">
1099 <col width="200px" class="parameters_annotations">
1100 </colgroup>
1101 <tbody>
1102 <tr>
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>
1106 </tr>
1107 <tr>
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>
1111 </tr>
1112 </tbody>
1113 </table></div>
1114 </div>
1115 <p>Flags: Run Last</p>
1116 </div>
1117 <hr>
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">
1128 <colgroup>
1129 <col width="150px" class="parameters_name">
1130 <col class="parameters_description">
1131 <col width="200px" class="parameters_annotations">
1132 </colgroup>
1133 <tbody>
1134 <tr>
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>
1138 </tr>
1139 <tr>
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>
1143 </tr>
1144 </tbody>
1145 </table></div>
1146 </div>
1147 <p>Flags: Run Last</p>
1148 </div>
1149 <hr>
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">
1160 <colgroup>
1161 <col width="150px" class="parameters_name">
1162 <col class="parameters_description">
1163 <col width="200px" class="parameters_annotations">
1164 </colgroup>
1165 <tbody>
1166 <tr>
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>
1170 </tr>
1171 <tr>
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>
1175 </tr>
1176 </tbody>
1177 </table></div>
1178 </div>
1179 <p>Flags: Run Last</p>
1180 </div>
1181 </div>
1182 </div>
1183 <div class="footer">
1184 <hr>Generated by GTK-Doc V1.25.1</div>
1185 </body>
1186 </html>