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</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="JSON-GLib Reference Manual">
8 <link rel="up" href="ch02.html" title="Parser">
9 <link rel="prev" href="ch02.html" title="Parser">
10 <link rel="next" href="JsonReader.html" title="JsonReader">
11 <meta name="generator" content="GTK-Doc V1.18.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="2">
17 <td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">JSON-GLib Reference Manual</th>
21 <td><a accesskey="n" href="JsonReader.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#JsonParser.synopsis" class="shortcut">Top</a>
26 <a href="#JsonParser.description" class="shortcut">Description</a>
28 <a href="#JsonParser.object-hierarchy" class="shortcut">Object Hierarchy</a>
30 <a href="#JsonParser.signals" class="shortcut">Signals</a>
33 <div class="refentry">
34 <a name="JsonParser"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
37 <h2><span class="refentrytitle"><a name="JsonParser.top_of_page"></a>JsonParser</span></h2>
38 <p>JsonParser — Parse JSON data streams</p>
40 <td valign="top" align="right"></td>
42 <div class="refsynopsisdiv">
43 <a name="JsonParser.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">enum <a class="link" href="JsonParser.html#JsonParserError" title="enum JsonParserError">JsonParserError</a>;
46 struct <a class="link" href="JsonParser.html#JsonParser-struct" title="struct JsonParser">JsonParser</a>;
47 struct <a class="link" href="JsonParser.html#JsonParserClass" title="struct JsonParserClass">JsonParserClass</a>;
48 <a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> * <a class="link" href="JsonParser.html#json-parser-new" title="json_parser_new ()">json_parser_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
49 <span class="returnvalue">gboolean</span> <a class="link" href="JsonParser.html#json-parser-load-from-file" title="json_parser_load_from_file ()">json_parser_load_from_file</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
50 <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
51 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
52 <span class="returnvalue">gboolean</span> <a class="link" href="JsonParser.html#json-parser-load-from-data" title="json_parser_load_from_data ()">json_parser_load_from_data</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
53 <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
54 <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
55 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
56 <span class="returnvalue">gboolean</span> <a class="link" href="JsonParser.html#json-parser-load-from-stream" title="json_parser_load_from_stream ()">json_parser_load_from_stream</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
57 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
58 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
59 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
60 <span class="returnvalue">void</span> <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> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
61 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
62 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
63 <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
64 <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
65 <span class="returnvalue">gboolean</span> <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> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
66 <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
67 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
69 <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> * <a class="link" href="JsonParser.html#json-parser-get-root" title="json_parser_get_root ()">json_parser_get_root</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
71 <span class="returnvalue">guint</span> <a class="link" href="JsonParser.html#json-parser-get-current-line" title="json_parser_get_current_line ()">json_parser_get_current_line</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
72 <span class="returnvalue">guint</span> <a class="link" href="JsonParser.html#json-parser-get-current-pos" title="json_parser_get_current_pos ()">json_parser_get_current_pos</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>);
73 <span class="returnvalue">gboolean</span> <a class="link" href="JsonParser.html#json-parser-has-assignment" title="json_parser_has_assignment ()">json_parser_has_assignment</a> (<em class="parameter"><code><a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser</code></em>,
74 <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);
77 <div class="refsect1">
78 <a name="JsonParser.object-hierarchy"></a><h2>Object Hierarchy</h2>
79 <pre class="synopsis">
84 <div class="refsect1">
85 <a name="JsonParser.signals"></a><h2>Signals</h2>
86 <pre class="synopsis">
87 "<a class="link" href="JsonParser.html#JsonParser-array-element" title='The "array-element" signal'>array-element</a>" : <code class="literal">Run Last</code>
88 "<a class="link" href="JsonParser.html#JsonParser-array-end" title='The "array-end" signal'>array-end</a>" : <code class="literal">Run Last</code>
89 "<a class="link" href="JsonParser.html#JsonParser-array-start" title='The "array-start" signal'>array-start</a>" : <code class="literal">Run Last</code>
90 "<a class="link" href="JsonParser.html#JsonParser-error" title='The "error" signal'>error</a>" : <code class="literal">Run Last</code>
91 "<a class="link" href="JsonParser.html#JsonParser-object-end" title='The "object-end" signal'>object-end</a>" : <code class="literal">Run Last</code>
92 "<a class="link" href="JsonParser.html#JsonParser-object-member" title='The "object-member" signal'>object-member</a>" : <code class="literal">Run Last</code>
93 "<a class="link" href="JsonParser.html#JsonParser-object-start" title='The "object-start" signal'>object-start</a>" : <code class="literal">Run Last</code>
94 "<a class="link" href="JsonParser.html#JsonParser-parse-end" title='The "parse-end" signal'>parse-end</a>" : <code class="literal">Run Last</code>
95 "<a class="link" href="JsonParser.html#JsonParser-parse-start" title='The "parse-start" signal'>parse-start</a>" : <code class="literal">Run Last</code>
98 <div class="refsect1">
99 <a name="JsonParser.description"></a><h2>Description</h2>
101 <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> provides an object for parsing a JSON data stream, either
102 inside a file or inside a static buffer.
105 <div class="refsect1">
106 <a name="JsonParser.details"></a><h2>Details</h2>
107 <div class="refsect2">
108 <a name="JsonParserError"></a><h3>enum JsonParserError</h3>
109 <pre class="programlisting">typedef enum {
110 JSON_PARSER_ERROR_PARSE,
111 JSON_PARSER_ERROR_TRAILING_COMMA,
112 JSON_PARSER_ERROR_MISSING_COMMA,
113 JSON_PARSER_ERROR_MISSING_COLON,
114 JSON_PARSER_ERROR_INVALID_BAREWORD,
116 JSON_PARSER_ERROR_UNKNOWN
120 Error enumeration for <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
123 This enumeration can be extended at later date
125 <div class="variablelist"><table border="0">
126 <col align="left" valign="top">
129 <td><p><a name="JSON-PARSER-ERROR-PARSE:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_PARSE</code></span></p></td>
134 <td><p><a name="JSON-PARSER-ERROR-TRAILING-COMMA:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_TRAILING_COMMA</code></span></p></td>
135 <td>unexpected trailing comma
139 <td><p><a name="JSON-PARSER-ERROR-MISSING-COMMA:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_MISSING_COMMA</code></span></p></td>
144 <td><p><a name="JSON-PARSER-ERROR-MISSING-COLON:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_MISSING_COLON</code></span></p></td>
149 <td><p><a name="JSON-PARSER-ERROR-INVALID-BAREWORD:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_INVALID_BAREWORD</code></span></p></td>
154 <td><p><a name="JSON-PARSER-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">JSON_PARSER_ERROR_UNKNOWN</code></span></p></td>
162 <div class="refsect2">
163 <a name="JsonParser-struct"></a><h3>struct JsonParser</h3>
164 <pre class="programlisting">struct JsonParser;</pre>
166 JSON data streams parser. The contents of the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> structure are
167 private and should only be accessed via the provided API.
171 <div class="refsect2">
172 <a name="JsonParserClass"></a><h3>struct JsonParserClass</h3>
173 <pre class="programlisting">struct JsonParserClass {
174 void (* parse_start) (JsonParser *parser);
176 void (* object_start) (JsonParser *parser);
177 void (* object_member) (JsonParser *parser,
179 const gchar *member_name);
180 void (* object_end) (JsonParser *parser,
183 void (* array_start) (JsonParser *parser);
184 void (* array_element) (JsonParser *parser,
187 void (* array_end) (JsonParser *parser,
190 void (* parse_end) (JsonParser *parser);
192 void (* error) (JsonParser *parser,
193 const GError *error);
197 <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> class.
199 <div class="variablelist"><table border="0">
200 <col align="left" valign="top">
203 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.parse-start"></a>parse_start</code></em> ()</span></p></td>
204 <td>class handler for the JsonParser::parse-start signal</td>
207 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-start"></a>object_start</code></em> ()</span></p></td>
208 <td>class handler for the JsonParser::object-start signal</td>
211 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-member"></a>object_member</code></em> ()</span></p></td>
212 <td>class handler for the JsonParser::object-member signal</td>
215 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.object-end"></a>object_end</code></em> ()</span></p></td>
216 <td>class handler for the JsonParser::object-end signal</td>
219 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-start"></a>array_start</code></em> ()</span></p></td>
220 <td>class handler for the JsonParser::array-start signal</td>
223 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-element"></a>array_element</code></em> ()</span></p></td>
224 <td>class handler for the JsonParser::array-element signal</td>
227 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.array-end"></a>array_end</code></em> ()</span></p></td>
228 <td>class handler for the JsonParser::array-end signal</td>
231 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.parse-end"></a>parse_end</code></em> ()</span></p></td>
232 <td>class handler for the JsonParser::parse-end signal</td>
235 <td><p><span class="term"><em class="structfield"><code><a name="JsonParserClass.error"></a>error</code></em> ()</span></p></td>
236 <td>class handler for the JsonParser::error signal</td>
242 <div class="refsect2">
243 <a name="json-parser-new"></a><h3>json_parser_new ()</h3>
244 <pre class="programlisting"><a class="link" href="JsonParser.html" title="JsonParser"><span class="returnvalue">JsonParser</span></a> * json_parser_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
246 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
247 load a JSON stream from either a file or a buffer and then walk the
248 hierarchy using the data types API.
250 <div class="variablelist"><table border="0">
251 <col align="left" valign="top">
253 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
254 <td>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>
255 to release all the memory it allocates.</td>
260 <div class="refsect2">
261 <a name="json-parser-load-from-file"></a><h3>json_parser_load_from_file ()</h3>
262 <pre class="programlisting"><span class="returnvalue">gboolean</span> 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>,
263 <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>,
264 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
266 Loads a JSON stream from the content of <em class="parameter"><code>filename</code></em> and parses it. See
267 <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>.
269 <div class="variablelist"><table border="0">
270 <col align="left" valign="top">
273 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
274 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
278 <td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
279 <td>the path for the file to parse</td>
282 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
283 <td>return location for a <span class="type">GError</span>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>
287 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
289 <code class="literal">TRUE</code> if the file was successfully loaded and parsed.
290 In case of error, <em class="parameter"><code>error</code></em> is set accordingly and <code class="literal">FALSE</code> is returned</td>
296 <div class="refsect2">
297 <a name="json-parser-load-from-data"></a><h3>json_parser_load_from_data ()</h3>
298 <pre class="programlisting"><span class="returnvalue">gboolean</span> 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>,
299 <em class="parameter"><code>const <span class="type">gchar</span> *data</code></em>,
300 <em class="parameter"><code><span class="type">gssize</span> length</code></em>,
301 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
303 Loads a JSON stream from a buffer and parses it. You can call this function
304 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
305 parser will be destroyed each time.
307 <div class="variablelist"><table border="0">
308 <col align="left" valign="top">
311 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
312 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
316 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
317 <td>the buffer to parse</td>
320 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
321 <td>the length of the buffer, or -1</td>
324 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
325 <td>return location for a <span class="type">GError</span>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>
329 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
331 <code class="literal">TRUE</code> if the buffer was succesfully parser. In case
332 of error, <em class="parameter"><code>error</code></em> is set accordingly and <code class="literal">FALSE</code> is returned</td>
338 <div class="refsect2">
339 <a name="json-parser-load-from-stream"></a><h3>json_parser_load_from_stream ()</h3>
340 <pre class="programlisting"><span class="returnvalue">gboolean</span> 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>,
341 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
342 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
343 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
345 Loads the contents of an input stream and parses them.
348 If <em class="parameter"><code>cancellable</code></em> is not <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>, then the operation can be cancelled by
349 triggering the <em class="parameter"><code>cancellable</code></em> object from another thread. If the
350 operation was cancelled, the error <code class="literal">G_IO_ERROR_CANCELLED</code> will be set
351 on the passed <em class="parameter"><code>error</code></em>.
353 <div class="variablelist"><table border="0">
354 <col align="left" valign="top">
357 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
358 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
362 <td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
363 <td>an open <span class="type">GInputStream</span>
367 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
368 <td>a <span class="type">GCancellable</span>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
372 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
373 <td>the return location for a <span class="type">GError</span>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>
377 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
379 <code class="literal">TRUE</code> if the data stream was successfully read and
380 parsed, and <code class="literal">FALSE</code> otherwise</td>
384 <p class="since">Since 0.12</p>
387 <div class="refsect2">
388 <a name="json-parser-load-from-stream-async"></a><h3>json_parser_load_from_stream_async ()</h3>
389 <pre class="programlisting"><span class="returnvalue">void</span> 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>,
390 <em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>,
391 <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
392 <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
393 <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
395 Asynchronously reads the contents of <em class="parameter"><code>stream</code></em>.
398 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
399 synchronous version of this call.
402 When the operation is finished, <em class="parameter"><code>callback</code></em> will be called. You should
403 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
406 <div class="variablelist"><table border="0">
407 <col align="left" valign="top">
410 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
411 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
415 <td><p><span class="term"><em class="parameter"><code>stream</code></em> :</span></p></td>
416 <td>a <span class="type">GInputStream</span>
420 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
421 <td>a <span class="type">GCancellable</span>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
425 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
426 <td>a <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied</td>
429 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
430 <td>the data to pass to <em class="parameter"><code>callback</code></em>
435 <p class="since">Since 0.12</p>
438 <div class="refsect2">
439 <a name="json-parser-load-from-stream-finish"></a><h3>json_parser_load_from_stream_finish ()</h3>
440 <pre class="programlisting"><span class="returnvalue">gboolean</span> 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>,
441 <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
442 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
444 Finishes an asynchronous stream loading started with
445 <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>.
447 <div class="variablelist"><table border="0">
448 <col align="left" valign="top">
451 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
452 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
456 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
457 <td>a <span class="type">GAsyncResult</span>
461 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
462 <td>the return location for a <span class="type">GError</span> or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>
466 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
468 <code class="literal">TRUE</code> if the content of the stream was successfully retrieves
469 and parsed, and <code class="literal">FALSE</code> otherwise. In case of error, the <span class="type">GError</span> will be
470 filled accordingly.</td>
474 <p class="since">Since 0.12</p>
477 <div class="refsect2">
478 <a name="json-parser-get-root"></a><h3>json_parser_get_root ()</h3>
479 <pre class="programlisting"><a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="returnvalue">JsonNode</span></a> * 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>
481 Retrieves the top level node from the parsed JSON stream.
483 <div class="variablelist"><table border="0">
484 <col align="left" valign="top">
487 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
488 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
492 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
493 <td>the root <a class="link" href="json-glib-JSON-Node.html#JsonNode" title="JsonNode"><span class="type">JsonNode</span></a> . The returned
494 node is owned by the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> and should never be modified
495 or freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
502 <div class="refsect2">
503 <a name="json-parser-get-current-line"></a><h3>json_parser_get_current_line ()</h3>
504 <pre class="programlisting"><span class="returnvalue">guint</span> 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>
506 Retrieves the line currently parsed, starting from 1.
509 This function has defined behaviour only while parsing; calling this
510 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
513 <div class="variablelist"><table border="0">
514 <col align="left" valign="top">
517 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
518 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
522 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
523 <td>the currently parsed line, or 0.</td>
529 <div class="refsect2">
530 <a name="json-parser-get-current-pos"></a><h3>json_parser_get_current_pos ()</h3>
531 <pre class="programlisting"><span class="returnvalue">guint</span> 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>
533 Retrieves the current position inside the current line, starting
537 This function has defined behaviour only while parsing; calling this
538 function from outside the signal handlers emitted by <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will
541 <div class="variablelist"><table border="0">
542 <col align="left" valign="top">
545 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
546 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
550 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
551 <td>the position in the current line, or 0.</td>
557 <div class="refsect2">
558 <a name="json-parser-has-assignment"></a><h3>json_parser_has_assignment ()</h3>
559 <pre class="programlisting"><span class="returnvalue">gboolean</span> 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>,
560 <em class="parameter"><code><span class="type">gchar</span> **variable_name</code></em>);</pre>
562 A JSON data stream might sometimes contain an assignment, like:
566 <div class="informalexample">
567 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
570 <td class="listing_lines" align="right"><pre>1</pre></td>
571 <td class="listing_code"><pre class="programlisting"><span class="normal">var _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>
580 even though it would technically constitute a violation of the RFC.
583 <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will ignore the left hand identifier and parse the right
584 hand value of the assignment. <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> will record, though, the
585 existence of the assignment in the data stream and the variable name
588 <div class="variablelist"><table border="0">
589 <col align="left" valign="top">
592 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
593 <td>a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
597 <td><p><span class="term"><em class="parameter"><code>variable_name</code></em> :</span></p></td>
598 <td>Return location for the variable
599 name, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="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>
603 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
605 <code class="literal">TRUE</code> if there was an assignment, <code class="literal">FALSE</code> otherwise. If
606 <em class="parameter"><code>variable_name</code></em> is not <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> it will be set to the name of the variable
607 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
608 never be modified or freed.</td>
612 <p class="since">Since 0.4</p>
615 <div class="refsect1">
616 <a name="JsonParser.signal-details"></a><h2>Signal Details</h2>
617 <div class="refsect2">
618 <a name="JsonParser-array-element"></a><h3>The <code class="literal">"array-element"</code> signal</h3>
619 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
620 <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array,
621 <span class="type">gint</span> index_,
622 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
624 The ::array-element signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
625 has successfully parsed a single element of a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>. The
626 array and element index are passed to the signal handlers.
628 <div class="variablelist"><table border="0">
629 <col align="left" valign="top">
632 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
633 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
636 <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
637 <td>a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
641 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
642 <td>the index of the newly parsed element</td>
645 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
646 <td>user data set when the signal handler was connected.</td>
652 <div class="refsect2">
653 <a name="JsonParser-array-end"></a><h3>The <code class="literal">"array-end"</code> signal</h3>
654 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
655 <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a> *array,
656 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
658 The ::array-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
659 has successfully parsed an entire <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
661 <div class="variablelist"><table border="0">
662 <col align="left" valign="top">
665 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
666 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
669 <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
670 <td>the parsed <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
674 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
675 <td>user data set when the signal handler was connected.</td>
681 <div class="refsect2">
682 <a name="JsonParser-array-start"></a><h3>The <code class="literal">"array-start"</code> signal</h3>
683 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
684 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
686 The ::array-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
687 starts parsing a <a class="link" href="json-glib-JSON-Array.html#JsonArray" title="JsonArray"><span class="type">JsonArray</span></a>
689 <div class="variablelist"><table border="0">
690 <col align="left" valign="top">
693 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
694 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
697 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
698 <td>user data set when the signal handler was connected.</td>
704 <div class="refsect2">
705 <a name="JsonParser-error"></a><h3>The <code class="literal">"error"</code> signal</h3>
706 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
707 <span class="type">gpointer</span> error,
708 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
710 The ::error signal is emitted each time a <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> encounters
711 an error in a JSON stream.
713 <div class="variablelist"><table border="0">
714 <col align="left" valign="top">
717 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
718 <td>the parser instance that received the signal</td>
721 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
722 <td>a pointer to the <span class="type">GError</span>
726 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
727 <td>user data set when the signal handler was connected.</td>
733 <div class="refsect2">
734 <a name="JsonParser-object-end"></a><h3>The <code class="literal">"object-end"</code> signal</h3>
735 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
736 <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object,
737 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
739 The ::object-end signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
740 has successfully parsed an entire <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
742 <div class="variablelist"><table border="0">
743 <col align="left" valign="top">
746 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
747 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
750 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
751 <td>the parsed <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
755 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
756 <td>user data set when the signal handler was connected.</td>
762 <div class="refsect2">
763 <a name="JsonParser-object-member"></a><h3>The <code class="literal">"object-member"</code> signal</h3>
764 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
765 <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a> *object,
766 <span class="type">gchar</span> *member_name,
767 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
769 The ::object-member signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
770 has successfully parsed a single member of a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>. The
771 object and member are passed to the signal handlers.
773 <div class="variablelist"><table border="0">
774 <col align="left" valign="top">
777 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
778 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
781 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
782 <td>a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>
786 <td><p><span class="term"><em class="parameter"><code>member_name</code></em> :</span></p></td>
787 <td>the name of the newly parsed member</td>
790 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
791 <td>user data set when the signal handler was connected.</td>
797 <div class="refsect2">
798 <a name="JsonParser-object-start"></a><h3>The <code class="literal">"object-start"</code> signal</h3>
799 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
800 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
802 The ::object-start signal is emitted each time the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a>
803 starts parsing a <a class="link" href="json-glib-JSON-Object.html#JsonObject" title="JsonObject"><span class="type">JsonObject</span></a>.
805 <div class="variablelist"><table border="0">
806 <col align="left" valign="top">
809 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
810 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
813 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
814 <td>user data set when the signal handler was connected.</td>
820 <div class="refsect2">
821 <a name="JsonParser-parse-end"></a><h3>The <code class="literal">"parse-end"</code> signal</h3>
822 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
823 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
825 The ::parse-end signal is emitted when the parser successfully
826 finished parsing a JSON data stream
828 <div class="variablelist"><table border="0">
829 <col align="left" valign="top">
832 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
833 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
836 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
837 <td>user data set when the signal handler was connected.</td>
843 <div class="refsect2">
844 <a name="JsonParser-parse-start"></a><h3>The <code class="literal">"parse-start"</code> signal</h3>
845 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> *parser,
846 <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre>
848 The ::parse-start signal is emitted when the parser began parsing
851 <div class="variablelist"><table border="0">
852 <col align="left" valign="top">
855 <td><p><span class="term"><em class="parameter"><code>parser</code></em> :</span></p></td>
856 <td>the <a class="link" href="JsonParser.html" title="JsonParser"><span class="type">JsonParser</span></a> that received the signal</td>
859 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
860 <td>user data set when the signal handler was connected.</td>
869 Generated by GTK-Doc V1.18.1</div>