<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="json-glib-1.0"/>
  <c:include name="json-glib/json-glib.h"/>
  <namespace name="Json"
             version="1.0"
             shared-library="libjson-glib-1.0.so.0"
             c:identifier-prefixes="Json"
             c:symbol-prefixes="json">
    <record name="Array"
            c:type="JsonArray"
            glib:type-name="JsonArray"
            glib:get-type="json_array_get_type"
            c:symbol-prefix="array">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="116">A JSON array type. The contents of the #JsonArray structure are private
and should only be accessed by the provided API</doc>
      <source-position filename="../json-glib/json-types.h" line="122"/>
      <constructor name="new" c:identifier="json_array_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="47">Creates a new #JsonArray.</doc>
        <source-position filename="../json-glib/json-types.h" line="438"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="52">the newly created #JsonArray</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
      </constructor>
      <constructor name="sized_new" c:identifier="json_array_sized_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="67">Creates a new #JsonArray with @n_elements slots already allocated.</doc>
        <source-position filename="../json-glib/json-types.h" line="440"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="73">the newly created #JsonArray</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <parameter name="n_elements" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="69">number of slots to pre-allocate</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_array_element"
              c:identifier="json_array_add_array_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="629">Conveniently adds an array into @array. The @array takes ownership
of the newly added #JsonArray

See also: json_array_add_element(), json_node_take_array()</doc>
        <source-position filename="../json-glib/json-types.h" line="463"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="631">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="632">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_boolean_element"
              c:identifier="json_array_add_boolean_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="562">Conveniently adds a boolean @value into @array

See also: json_array_add_element(), json_node_set_boolean()</doc>
        <source-position filename="../json-glib/json-types.h" line="455"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="564">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="565">a boolean value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_double_element"
              c:identifier="json_array_add_double_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="542">Conveniently adds a floating point @value into @array

See also: json_array_add_element(), json_node_set_double()</doc>
        <source-position filename="../json-glib/json-types.h" line="452"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="544">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="545">a floating point value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_element" c:identifier="json_array_add_element">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="504">Appends @node inside @array. The array will take ownership of the
#JsonNode.</doc>
        <source-position filename="../json-glib/json-types.h" line="446"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="506">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="507">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_int_element"
              c:identifier="json_array_add_int_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="522">Conveniently adds an integer @value into @array

See also: json_array_add_element(), json_node_set_int()</doc>
        <source-position filename="../json-glib/json-types.h" line="449"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="524">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="525">an integer value</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_null_element"
              c:identifier="json_array_add_null_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="611">Conveniently adds a null element into @array

See also: json_array_add_element(), %JSON_NODE_NULL</doc>
        <source-position filename="../json-glib/json-types.h" line="461"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="613">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_object_element"
              c:identifier="json_array_add_object_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="662">Conveniently adds an object into @array. The @array takes ownership
of the newly added #JsonObject

See also: json_array_add_element(), json_node_take_object()</doc>
        <source-position filename="../json-glib/json-types.h" line="466"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="664">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="665">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_string_element"
              c:identifier="json_array_add_string_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="582">Conveniently adds a string @value into @array

See also: json_array_add_element(), json_node_set_string()</doc>
        <source-position filename="../json-glib/json-types.h" line="458"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="584">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="585">a string value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup_element"
              c:identifier="json_array_dup_element"
              version="0.6">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="212">Retrieves a copy of the #JsonNode containing the value of the
element at @index_ inside a #JsonArray</doc>
        <source-position filename="../json-glib/json-types.h" line="495"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="220">a copy of the #JsonNode at the requested
  index. Use json_node_unref() when done.</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="214">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="215">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="json_array_equal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="786">Check whether @a and @b are equal #JsonArrays, meaning they have the same
number of elements, and the values of elements in corresponding positions
are equal.</doc>
        <source-position filename="../json-glib/json-types.h" line="514"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="795">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="788">a JSON array</doc>
            <type name="Array" c:type="gconstpointer"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="789">another JSON array</doc>
            <type name="Array" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_element"
              c:identifier="json_array_foreach_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="713">Iterates over all elements of @array and calls @func on
each one of them.

It is safe to change the value of a #JsonNode of the @array
from within the iterator @func, but it is not safe to add or
remove elements from the @array.</doc>
        <source-position filename="../json-glib/json-types.h" line="503"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="715">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="716">the function to be called on each element</doc>
            <type name="ArrayForeach" c:type="JsonArrayForeach"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="717">data to be passed to the function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_array_element"
              c:identifier="json_array_get_array_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="422">Conveniently retrieves the array from the element at @index_
inside @array

See also: json_array_get_element(), json_node_get_array()</doc>
        <source-position filename="../json-glib/json-types.h" line="489"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="432">the array</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="424">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="425">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean_element"
              c:identifier="json_array_get_boolean_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="321">Conveniently retrieves the boolean value of the element at @index_
inside @array

See also: json_array_get_element(), json_node_get_boolean()</doc>
        <source-position filename="../json-glib/json-types.h" line="480"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="331">the integer value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="323">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="324">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_double_element"
              c:identifier="json_array_get_double_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="291">Conveniently retrieves the floating point value of the element at
@index_ inside @array

See also: json_array_get_element(), json_node_get_double()</doc>
        <source-position filename="../json-glib/json-types.h" line="477"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="301">the floating point value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="293">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="294">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_element" c:identifier="json_array_get_element">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="241">Retrieves the #JsonNode containing the value of the element at @index_
inside a #JsonArray.</doc>
        <source-position filename="../json-glib/json-types.h" line="471"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="249">a pointer to the #JsonNode at the requested index</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="243">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="244">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_elements" c:identifier="json_array_get_elements">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="185">Gets the elements of a #JsonArray as a list of #JsonNode instances.</doc>
        <source-position filename="../json-glib/json-types.h" line="469"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="191">a #GList
  containing the elements of the array. The contents of the list are
  owned by the array and should never be modified or freed. Use
  g_list_free() on the returned list when done using it</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Node"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="187">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_int_element"
              c:identifier="json_array_get_int_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="261">Conveniently retrieves the integer value of the element at @index_
inside @array

See also: json_array_get_element(), json_node_get_int()</doc>
        <source-position filename="../json-glib/json-types.h" line="474"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="271">the integer value</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="263">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="264">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="json_array_get_length">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="488">Retrieves the length of a #JsonArray</doc>
        <source-position filename="../json-glib/json-types.h" line="501"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="494">the length of the array</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="490">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_null_element"
              c:identifier="json_array_get_null_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="385">Conveniently retrieves whether the element at @index_ is set to null

See also: json_array_get_element(), JSON_NODE_TYPE(), %JSON_NODE_NULL</doc>
        <source-position filename="../json-glib/json-types.h" line="486"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="394">%TRUE if the element is null</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="387">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="388">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_element"
              c:identifier="json_array_get_object_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="455">Conveniently retrieves the object from the element at @index_
inside @array

See also: json_array_get_element(), json_node_get_object()</doc>
        <source-position filename="../json-glib/json-types.h" line="492"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="465">the object</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="457">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="458">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string_element"
              c:identifier="json_array_get_string_element"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="351">Conveniently retrieves the string value of the element at @index_
inside @array

See also: json_array_get_element(), json_node_get_string()</doc>
        <source-position filename="../json-glib/json-types.h" line="483"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="361">the string value; the returned string is owned by
  the #JsonArray and should not be modified or freed</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="353">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="354">the index of the element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="json_array_hash" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="748">Calculate a hash value for the given @key (a #JsonArray).

The hash is calculated over the array and all its elements, recursively. If
the array is immutable, this is a fast operation; otherwise, it scales
proportionally with the length of the array.</doc>
        <source-position filename="../json-glib/json-types.h" line="512"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="758">hash value for @key</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="750">a JSON array to hash</doc>
            <type name="Array" c:type="gconstpointer"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_immutable"
              c:identifier="json_array_is_immutable"
              version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="166">Check whether the given @array has been marked as immutable by calling
json_array_seal() on it.</doc>
        <source-position filename="../json-glib/json-types.h" line="509"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="174">%TRUE if the @array is immutable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="168">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="json_array_ref">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="88">Increase by one the reference count of a #JsonArray.</doc>
        <source-position filename="../json-glib/json-types.h" line="442"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-array.c"
               line="94">the passed #JsonArray, with the reference count
  increased by one.</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="90">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_element" c:identifier="json_array_remove_element">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="695">Removes the #JsonNode inside @array at @index_ freeing its allocated
resources.</doc>
        <source-position filename="../json-glib/json-types.h" line="498"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="697">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="698">the position of the element to be removed</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="seal" c:identifier="json_array_seal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="136">Seals the #JsonArray, making it immutable to further changes. This will
recursively seal all elements in the array too.

If the @array is already immutable, this is a no-op.</doc>
        <source-position filename="../json-glib/json-types.h" line="507"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="138">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="json_array_unref">
        <doc xml:space="preserve"
             filename="../json-glib/json-array.c"
             line="108">Decreases by one the reference count of a #JsonArray. If the
reference count reaches zero, the array is destroyed and all
its allocated resources are freed.</doc>
        <source-position filename="../json-glib/json-types.h" line="444"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-array.c"
                 line="110">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="ArrayForeach" c:type="JsonArrayForeach" version="0.8">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="158">The function to be passed to json_array_foreach_element(). You
should not add or remove elements to and from @array within
this function. It is safe to change the value of @element_node.</doc>
      <source-position filename="../json-glib/json-types.h" line="171"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="array" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="160">the iterated #JsonArray</doc>
          <type name="Array" c:type="JsonArray*"/>
        </parameter>
        <parameter name="index_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="161">the index of the element</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="element_node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="162">a #JsonNode containing the value at @index_</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="163">data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="BoxedDeserializeFunc"
              c:type="JsonBoxedDeserializeFunc"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.h"
           line="140">Deserializes the contents of the passed #JsonNode into a #GBoxed</doc>
      <source-position filename="../json-glib/json-gobject.h" line="150"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.h"
             line="146">the newly created boxed type</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.h"
               line="142">a #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="BoxedSerializeFunc"
              c:type="JsonBoxedSerializeFunc"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.h"
           line="128">Serializes the passed #GBoxed and stores it inside a #JsonNode</doc>
      <source-position filename="../json-glib/json-gobject.h" line="138"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.h"
             line="134">the newly created #JsonNode</doc>
        <type name="Node" c:type="JsonNode*"/>
      </return-value>
      <parameters>
        <parameter name="boxed"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.h"
               line="130">a #GBoxed</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Builder"
           c:symbol-prefix="builder"
           c:type="JsonBuilder"
           version="0.12"
           parent="GObject.Object"
           glib:type-name="JsonBuilder"
           glib:get-type="json_builder_get_type"
           glib:type-struct="BuilderClass">
      <doc xml:space="preserve"
           filename="../json-glib/json-builder.h"
           line="45">The `JsonBuilder` structure contains only private data and should be
accessed using the provided API</doc>
      <source-position filename="../json-glib/json-builder.h" line="76"/>
      <constructor name="new" c:identifier="json_builder_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="238">Creates a new #JsonBuilder. You can use this object to generate a
JSON tree and obtain the root #JsonNode.</doc>
        <source-position filename="../json-glib/json-builder.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="244">the newly created #JsonBuilder instance</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
      </constructor>
      <constructor name="new_immutable"
                   c:identifier="json_builder_new_immutable"
                   version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="252">Creates a new #JsonBuilder instance with its #JsonBuilder:immutable property
set to %TRUE to create immutable output trees.</doc>
        <source-position filename="../json-glib/json-builder.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="259">a new #JsonBuilder</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
      </constructor>
      <method name="add_boolean_value"
              c:identifier="json_builder_add_boolean_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="670">If called after json_builder_set_member_name(), sets @value as member of the
most recent opened object, otherwise @value is added as element of the most
recent opened array.

See also: json_builder_add_value()</doc>
        <source-position filename="../json-glib/json-builder.h" line="112"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="681">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="672">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="673">the value of the member or element</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_double_value"
              c:identifier="json_builder_add_double_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="624">If called after json_builder_set_member_name(), sets @value as member of the
most recent opened object, otherwise @value is added as element of the most
recent opened array.

See also: json_builder_add_value()</doc>
        <source-position filename="../json-glib/json-builder.h" line="109"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="635">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="626">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="627">the value of the member or element</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_int_value" c:identifier="json_builder_add_int_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="579">If called after json_builder_set_member_name(), sets @value as member of the
most recent opened object, otherwise @value is added as element of the most
recent opened array.

See also: json_builder_add_value()</doc>
        <source-position filename="../json-glib/json-builder.h" line="106"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="590">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="581">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="582">the value of the member or element</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_null_value" c:identifier="json_builder_add_null_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="762">If called after json_builder_set_member_name(), sets null as member of the
most recent opened object, otherwise null is added as element of the most
recent opened array.

See also: json_builder_add_value()</doc>
        <source-position filename="../json-glib/json-builder.h" line="118"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="772">the #JsonBuilder, or %NULL if
the call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="764">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_string_value"
              c:identifier="json_builder_add_string_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="716">If called after json_builder_set_member_name(), sets @value as member of the
most recent opened object, otherwise @value is added as element of the most
recent opened array.

See also: json_builder_add_value()</doc>
        <source-position filename="../json-glib/json-builder.h" line="115"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="727">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="718">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="719">the value of the member or element</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_value" c:identifier="json_builder_add_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="529">If called after json_builder_set_member_name(), sets @node as member of the
most recent opened object, otherwise @node is added as element of the most
recent opened array.

The builder will take ownership of the #JsonNode.</doc>
        <source-position filename="../json-glib/json-builder.h" line="103"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="540">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="531">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="532">the value of the member or element</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_array" c:identifier="json_builder_begin_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="404">Opens a subarray inside the given @builder. When done adding members to
the subarray, json_builder_end_array() must be called.

Can be called for first or only if the call is associated to an object member
or an array element.</doc>
        <source-position filename="../json-glib/json-builder.h" line="91"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="414">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="406">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="begin_object" c:identifier="json_builder_begin_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="309">Opens a subobject inside the given @builder. When done adding members to
the subobject, json_builder_end_object() must be called.

Can be called for first or only if the call is associated to an object member
or an array element.</doc>
        <source-position filename="../json-glib/json-builder.h" line="95"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="319">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="311">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_array" c:identifier="json_builder_end_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="458">Closes the subarray inside the given @builder that was opened by the most
recent call to json_builder_begin_array().

Cannot be called after json_builder_set_member_name().</doc>
        <source-position filename="../json-glib/json-builder.h" line="93"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="467">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="460">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_object" c:identifier="json_builder_end_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="364">Closes the subobject inside the given @builder that was opened by the most
recent call to json_builder_begin_object().

Cannot be called after json_builder_set_member_name().</doc>
        <source-position filename="../json-glib/json-builder.h" line="97"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="373">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="366">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="json_builder_get_root">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="267">Returns the root of the current constructed tree, if the build is complete
(ie: all opened objects, object members and arrays are being closed).</doc>
        <source-position filename="../json-glib/json-builder.h" line="86"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="274">the #JsonNode, or %NULL if the
  build is not complete. Free the returned value with json_node_unref().</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="269">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="json_builder_reset">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="295">Resets the state of the @builder back to its initial state.</doc>
        <source-position filename="../json-glib/json-builder.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="297">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_member_name"
              c:identifier="json_builder_set_member_name">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="498">Set the name of the next member in an object. The next call must add a value,
open an object or an array.

Can be called only if the call is associated to an object.</doc>
        <source-position filename="../json-glib/json-builder.h" line="100"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-builder.c"
               line="508">the #JsonBuilder, or %NULL if the
call was inconsistent</doc>
          <type name="Builder" c:type="JsonBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="500">a #JsonBuilder</doc>
            <type name="Builder" c:type="JsonBuilder*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-builder.c"
                 line="501">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="immutable"
                version="1.2"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-builder.c"
             line="190">Whether the #JsonNode tree built by the #JsonBuilder should be immutable
when created. Making the output immutable on creation avoids the expense
of traversing it to make it immutable later.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="BuilderPrivate" c:type="JsonBuilderPrivate*"/>
      </field>
    </class>
    <record name="BuilderClass"
            c:type="JsonBuilderClass"
            glib:is-gtype-struct-for="Builder"
            version="0.12">
      <doc xml:space="preserve"
           filename="../json-glib/json-builder.h"
           line="61">The `JsonBuilderClass` structure contains only private data</doc>
      <source-position filename="../json-glib/json-builder.h" line="76"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_json_reserved1" introspectable="0">
        <callback name="_json_reserved1">
          <source-position filename="../json-glib/json-builder.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved2" introspectable="0">
        <callback name="_json_reserved2">
          <source-position filename="../json-glib/json-builder.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="BuilderPrivate" c:type="JsonBuilderPrivate" disguised="1">
      <source-position filename="../json-glib/json-builder.h" line="42"/>
    </record>
    <class name="Generator"
           c:symbol-prefix="generator"
           c:type="JsonGenerator"
           parent="GObject.Object"
           glib:type-name="JsonGenerator"
           glib:get-type="json_generator_get_type"
           glib:type-struct="GeneratorClass">
      <doc xml:space="preserve"
           filename="../json-glib/json-generator.h"
           line="47">JSON data streams generator. The contents of the #JsonGenerator structure
are private and should only be accessed via the provided API.</doc>
      <source-position filename="../json-glib/json-generator.h" line="76"/>
      <constructor name="new" c:identifier="json_generator_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="465">Creates a new #JsonGenerator. You can use this object to generate a
JSON data stream starting from a data object model composed by
#JsonNodes.</doc>
        <source-position filename="../json-glib/json-generator.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="472">the newly created #JsonGenerator instance</doc>
          <type name="Generator" c:type="JsonGenerator*"/>
        </return-value>
      </constructor>
      <method name="get_indent"
              c:identifier="json_generator_get_indent"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="735">Retrieves the value set using json_generator_set_indent().</doc>
        <source-position filename="../json-glib/json-generator.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="741">the number of repetitions per indentation level</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="737">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indent_char"
              c:identifier="json_generator_get_indent_char"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="780">Retrieves the value set using json_generator_set_indent_char().</doc>
        <source-position filename="../json-glib/json-generator.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="786">the character to be used when indenting</doc>
          <type name="gunichar" c:type="gunichar"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="782">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pretty"
              c:identifier="json_generator_get_pretty"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="688">Retrieves the value set using json_generator_set_pretty().</doc>
        <source-position filename="../json-glib/json-generator.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="694">%TRUE if the generated JSON should be pretty-printed, and
  %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="690">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root"
              c:identifier="json_generator_get_root"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="637">Retrieves a pointer to the root #JsonNode set using
json_generator_set_root().</doc>
        <source-position filename="../json-glib/json-generator.h" line="103"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="644">a #JsonNode, or %NULL. The returned
node is owned by the #JsonGenerator and it should not be freed</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="639">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_indent"
              c:identifier="json_generator_set_indent"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="707">Sets the number of repetitions for each indentation level.</doc>
        <source-position filename="../json-glib/json-generator.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="709">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="indent_level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="710">the number of repetitions of the indentation character
  that should be applied when pretty printing</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indent_char"
              c:identifier="json_generator_set_indent_char"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="753">Sets the character to be used when indenting</doc>
        <source-position filename="../json-glib/json-generator.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="755">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="indent_char" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="756">a Unicode character to be used when indenting</doc>
            <type name="gunichar" c:type="gunichar"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pretty"
              c:identifier="json_generator_set_pretty"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="657">Sets whether the generated JSON should be pretty printed, using the
indentation character specified in the #JsonGenerator:indent-char
property and the spacing specified in #JsonGenerator:indent property.</doc>
        <source-position filename="../json-glib/json-generator.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="659">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="is_pretty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="660">whether the generated string should be pretty printed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_root" c:identifier="json_generator_set_root">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="605">Sets @node as the root of the JSON data stream to be serialized by
the #JsonGenerator.

The passed @node is copied by the generator object, so it can be
safely freed after calling this function.</doc>
        <source-position filename="../json-glib/json-generator.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="607">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="608">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_data" c:identifier="json_generator_to_data">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="509">Generates a JSON data stream from @generator and returns it as a
buffer.</doc>
        <source-position filename="../json-glib/json-generator.h" line="110"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="518">a newly allocated buffer holding a JSON data stream.
  Use g_free() to free the allocated resources.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="511">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="512">return location for the length of the returned
  buffer, or %NULL</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_file" c:identifier="json_generator_to_file" throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="538">Creates a JSON data stream and puts it inside @filename, overwriting the
current file contents. This operation is atomic.</doc>
        <source-position filename="../json-glib/json-generator.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="547">%TRUE if saving was successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="540">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="541">path to the target file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_gstring"
              c:identifier="json_generator_to_gstring"
              version="1.4">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="480">Generates a JSON data stream from @generator
and appends it to @string.</doc>
        <source-position filename="../json-glib/json-generator.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="488">a #GString holding a JSON data stream.
  Use g_string_free() to free the allocated resources.</doc>
          <type name="GLib.String" c:type="GString*"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="482">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="483">a #GString</doc>
            <type name="GLib.String" c:type="GString*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_stream"
              c:identifier="json_generator_to_stream"
              version="0.12"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="568">Outputs JSON data and streams it (synchronously) to @stream.</doc>
        <source-position filename="../json-glib/json-generator.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-generator.c"
               line="577">%TRUE if the write operation was successful, and %FALSE
  on failure. In case of error, the #GError will be filled accordingly</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="570">a #JsonGenerator</doc>
            <type name="Generator" c:type="JsonGenerator*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="571">a #GOutputStream</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-generator.c"
                 line="572">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="indent" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="219">Number of spaces to be used to indent when pretty printing.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="indent-char"
                version="0.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="247">The character that should be used when indenting in pretty print.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="pretty" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="205">Whether the output should be "pretty-printed", with indentation and
newlines. The indentation level can be controlled by using the
JsonGenerator:indent property</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="root"
                version="0.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-generator.c"
             line="232">The root #JsonNode to be used when constructing a JSON data
stream.</doc>
        <type name="Node"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="GeneratorPrivate" c:type="JsonGeneratorPrivate*"/>
      </field>
    </class>
    <record name="GeneratorClass"
            c:type="JsonGeneratorClass"
            glib:is-gtype-struct-for="Generator">
      <doc xml:space="preserve"
           filename="../json-glib/json-generator.h"
           line="61">#JsonGenerator class</doc>
      <source-position filename="../json-glib/json-generator.h" line="76"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_json_reserved1" introspectable="0">
        <callback name="_json_reserved1">
          <source-position filename="../json-glib/json-generator.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved2" introspectable="0">
        <callback name="_json_reserved2">
          <source-position filename="../json-glib/json-generator.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved3" introspectable="0">
        <callback name="_json_reserved3">
          <source-position filename="../json-glib/json-generator.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved4" introspectable="0">
        <callback name="_json_reserved4">
          <source-position filename="../json-glib/json-generator.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="GeneratorPrivate"
            c:type="JsonGeneratorPrivate"
            disguised="1">
      <source-position filename="../json-glib/json-generator.h" line="44"/>
    </record>
    <constant name="MAJOR_VERSION" value="1" c:type="JSON_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="../json-glib/json-version.h"
           line="39">Json major version component (e.g. 1 if %JSON_VERSION is 1.2.3)</doc>
      <source-position filename="../json-glib/json-version.h" line="44"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="4" c:type="JSON_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="../json-glib/json-version.h"
           line="53">Json micro version component (e.g. 3 if %JSON_VERSION is 1.2.3)</doc>
      <source-position filename="../json-glib/json-version.h" line="58"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="4" c:type="JSON_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="../json-glib/json-version.h"
           line="46">Json minor version component (e.g. 2 if %JSON_VERSION is 1.2.3)</doc>
      <source-position filename="../json-glib/json-version.h" line="51"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Node"
            c:type="JsonNode"
            glib:type-name="JsonNode"
            glib:get-type="json_node_get_type"
            c:symbol-prefix="node">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="99">A generic container of JSON data types. The contents of the #JsonNode
structure are private and should only be accessed via the provided
functions and never directly.</doc>
      <source-position filename="../json-glib/json-types.h" line="106"/>
      <constructor name="alloc" c:identifier="json_node_alloc" version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="111">Allocates a new #JsonNode. Use json_node_init() and its variants
to initialize the returned value.</doc>
        <source-position filename="../json-glib/json-types.h" line="186"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="117">the newly allocated #JsonNode. Use
  json_node_free() to free the resources allocated by this function</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
      </constructor>
      <constructor name="new" c:identifier="json_node_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="373">Creates a new #JsonNode of @type.

This is a convenience function for json_node_alloc() and json_node_init(),
and it's the equivalent of:

|[&lt;!-- language="C" --&gt;
     json_node_init (json_node_alloc (), type);
]|</doc>
        <source-position filename="../json-glib/json-types.h" line="183"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="386">the newly created #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="375">a #JsonNodeType</doc>
            <type name="NodeType" c:type="JsonNodeType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="json_node_copy">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="397">Copies @node. If the node contains complex data types, their reference
counts are increased, regardless of whether the node is mutable or
immutable.

The copy will be immutable if, and only if, @node is immutable. However,
there should be no need to copy an immutable node.</doc>
        <source-position filename="../json-glib/json-types.h" line="212"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="408">the copied #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="399">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dup_array" c:identifier="json_node_dup_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="669">Retrieves the #JsonArray stored inside a #JsonNode and returns it
with its reference count increased by one. It is a programmer error
to call this on a node which doesn’t hold an array value. Use
%JSON_NODE_HOLDS_ARRAY first.</doc>
        <source-position filename="../json-glib/json-types.h" line="252"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="678">the #JsonArray with its reference
  count increased.</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="671">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dup_object" c:identifier="json_node_dup_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="572">Retrieves the #JsonObject inside @node. The reference count of
the returned object is increased. It is a programmer error
to call this on a node which doesn’t hold an object value. Use
%JSON_NODE_HOLDS_OBJECT first.</doc>
        <source-position filename="../json-glib/json-types.h" line="242"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="581">the #JsonObject</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="574">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dup_string" c:identifier="json_node_dup_string">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1027">Gets a copy of the string value stored inside a #JsonNode. If the node does
not hold a string value, %NULL is returned.</doc>
        <source-position filename="../json-glib/json-types.h" line="265"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1034">a newly allocated string
  containing a copy of the #JsonNode contents. Use g_free() to free the
  allocated resources</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1029">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="json_node_equal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1399">Check whether @a and @b are equal #JsonNodes, meaning they have the same
type and same values (checked recursively). Note that integer values are
compared numerically, ignoring type, so a double value 4.0 is equal to the
integer value 4.</doc>
        <source-position filename="../json-glib/json-types.h" line="301"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1409">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1401">a JSON node</doc>
            <type name="Node" c:type="gconstpointer"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1402">another JSON node</doc>
            <type name="Node" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="json_node_free">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="799">Frees the resources allocated by @node.</doc>
        <source-position filename="../json-glib/json-types.h" line="214"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="801">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_array" c:identifier="json_node_get_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="650">Retrieves the #JsonArray stored inside a #JsonNode. It is a programmer error
to call this on a node which doesn’t hold an array value. Use
%JSON_NODE_HOLDS_ARRAY first.</doc>
        <source-position filename="../json-glib/json-types.h" line="250"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="658">the #JsonArray</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="652">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_boolean" c:identifier="json_node_get_boolean">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1191">Gets the boolean value stored inside a #JsonNode. If the node holds an
integer or double value which is zero, %FALSE is returned; otherwise %TRUE
is returned. If the node holds a %JSON_NODE_NULL value or a value of another
non-boolean type, %FALSE is returned.</doc>
        <source-position filename="../json-glib/json-types.h" line="280"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1200">a boolean value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1193">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_double" c:identifier="json_node_get_double">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1132">Gets the double value stored inside a #JsonNode. If the node holds an integer
value, it is returned as a double. If the node holds a %FALSE boolean value,
`0.0` is returned; otherwise a non-zero double is returned. If the node holds
a %JSON_NODE_NULL value or a value of another non-double type, `0.0` is
returned.</doc>
        <source-position filename="../json-glib/json-types.h" line="275"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1142">a double value.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1134">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_int" c:identifier="json_node_get_int">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1073">Gets the integer value stored inside a #JsonNode. If the node holds a double
value, its integer component is returned. If the node holds a %FALSE boolean
value, `0` is returned; otherwise a non-zero integer is returned. If the
node holds a %JSON_NODE_NULL value or a value of another non-integer type,
`0` is returned.</doc>
        <source-position filename="../json-glib/json-types.h" line="270"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1083">an integer value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1075">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_node_type"
              c:identifier="json_node_get_node_type"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1222">Retrieves the #JsonNodeType of @node</doc>
        <source-position filename="../json-glib/json-types.h" line="222"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1228">the type of the node</doc>
          <type name="NodeType" c:type="JsonNodeType"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1224">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object" c:identifier="json_node_get_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="553">Retrieves the #JsonObject stored inside a #JsonNode. It is a programmer error
to call this on a node which doesn’t hold an object value. Use
%JSON_NODE_HOLDS_OBJECT first.</doc>
        <source-position filename="../json-glib/json-types.h" line="240"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="561">the #JsonObject</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="555">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="json_node_get_parent">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="960">Retrieves the parent #JsonNode of @node.</doc>
        <source-position filename="../json-glib/json-types.h" line="229"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="966">the parent node, or %NULL if @node
  is the root node</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="962">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string" c:identifier="json_node_get_string">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1004">Gets the string value stored inside a #JsonNode. If the node does not hold a
string value, %NULL is returned.</doc>
        <source-position filename="../json-glib/json-types.h" line="263"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1011">a string value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1006">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="json_node_get_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="693">Retrieves a value from a #JsonNode and copies into @value. When done
using it, call g_value_unset() on the #GValue. It is a programmer error
to call this on a node which doesn’t hold a scalar value. Use
%JSON_NODE_HOLDS_VALUE first.</doc>
        <source-position filename="../json-glib/json-types.h" line="257"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="695">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="696">return location for an uninitialized value</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_type"
              c:identifier="json_node_get_value_type"
              version="0.4">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="73">Returns the #GType of the payload of the node.</doc>
        <source-position filename="../json-glib/json-types.h" line="224"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="79">a #GType for the payload.</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="75">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="json_node_hash" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1355">Calculate a hash value for the given @key (a #JsonNode).

The hash is calculated over the node and its value, recursively. If the node
is immutable, this is a fast operation; otherwise, it scales proportionally
with the size of the node’s value (for example, with the number of members
in the #JsonObject if this node contains an object).</doc>
        <source-position filename="../json-glib/json-types.h" line="299"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1366">hash value for @key</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1357">a JSON node to hash</doc>
            <type name="Node" c:type="gconstpointer"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="json_node_init" version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="163">Initializes a @node to a specific @type.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="173">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="165">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="166">the type of JSON node to initialize @node to</doc>
            <type name="NodeType" c:type="JsonNodeType"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_array"
              c:identifier="json_node_init_array"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="220">Initializes @node to %JSON_NODE_ARRAY and sets @array into it.

This function will take a reference on @array.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="232">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="222">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="array"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="223">the #JsonArray to initialize @node with, or %NULL</doc>
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_boolean"
              c:identifier="json_node_init_boolean"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="300">Initializes @node to %JSON_NODE_VALUE and sets @value into it.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="203"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="310">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="302">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="303">a boolean value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_double"
              c:identifier="json_node_init_double"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="274">Initializes @node to %JSON_NODE_VALUE and sets @value into it.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="284">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="276">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="277">a floating point value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_int" c:identifier="json_node_init_int" version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="248">Initializes @node to %JSON_NODE_VALUE and sets @value into it.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="258">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="250">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="251">an integer</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_null"
              c:identifier="json_node_init_null"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="352">Initializes @node to %JSON_NODE_NULL.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="209"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="361">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="354">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init_object"
              c:identifier="json_node_init_object"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="192">Initializes @node to %JSON_NODE_OBJECT and sets @object into it.

This function will take a reference on @object.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="204">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="194">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="195">the #JsonObject to initialize @node with, or %NULL</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init_string"
              c:identifier="json_node_init_string"
              version="0.16">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="326">Initializes @node to %JSON_NODE_VALUE and sets @value into it.

If the node has already been initialized once, it will be reset to
the given type, and any data contained will be cleared.</doc>
        <source-position filename="../json-glib/json-types.h" line="206"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="336">the initialized #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="328">the #JsonNode to initialize</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="329">a string value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_immutable"
              c:identifier="json_node_is_immutable"
              version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="865">Check whether the given @node has been marked as immutable by calling
json_node_seal() on it.</doc>
        <source-position filename="../json-glib/json-types.h" line="287"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="873">%TRUE if the @node is immutable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="867">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_null" c:identifier="json_node_is_null" version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1240">Checks whether @node is a %JSON_NODE_NULL.

A %JSON_NODE_NULL node is not the same as a %NULL #JsonNode; a
%JSON_NODE_NULL represents a 'null' value in the JSON tree.</doc>
        <source-position filename="../json-glib/json-types.h" line="282"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1249">%TRUE if the node is null</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1242">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="json_node_ref" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="455">Increment the reference count of @node.</doc>
        <source-position filename="../json-glib/json-types.h" line="217"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="462">a pointer to @node</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="457">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seal" c:identifier="json_node_seal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="821">Seals the #JsonNode, making it immutable to further changes. In order to be
sealed, the @node must have a type and value set. The value will be
recursively sealed — if the node holds an object, that #JsonObject will be
sealed, etc.

If the @node is already immutable, this is a no-op.</doc>
        <source-position filename="../json-glib/json-types.h" line="285"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="823">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_array" c:identifier="json_node_set_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="595">Sets @array inside @node and increases the #JsonArray reference count.

It is an error to call this on an immutable node, or on a node which is not
an array node.</doc>
        <source-position filename="../json-glib/json-types.h" line="244"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="597">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="598">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean" c:identifier="json_node_set_boolean">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1164">Sets @value as the boolean content of the @node, replacing any existing
content.

It is an error to call this on an immutable node, or on a node which is not
a value node.</doc>
        <source-position filename="../json-glib/json-types.h" line="277"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1166">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1167">a boolean value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_double" c:identifier="json_node_set_double">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1105">Sets @value as the double content of the @node, replacing any existing
content.

It is an error to call this on an immutable node, or on a node which is not
a value node.</doc>
        <source-position filename="../json-glib/json-types.h" line="272"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1107">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1108">a double value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int" c:identifier="json_node_set_int">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1046">Sets @value as the integer content of the @node, replacing any existing
content.

It is an error to call this on an immutable node, or on a node which is not
a value node.</doc>
        <source-position filename="../json-glib/json-types.h" line="267"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1048">a #JsonNode of type %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="1049">an integer value</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_object" c:identifier="json_node_set_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="496">Sets @objects inside @node. The reference count of @object is increased.

If @object is %NULL, the node’s existing object is cleared.

It is an error to call this on an immutable node, or on a node which is not
an object node.</doc>
        <source-position filename="../json-glib/json-types.h" line="234"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="498">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="499">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent"
              c:identifier="json_node_set_parent"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="937">Sets the parent #JsonNode of @node.

It is an error to call this with an immutable @parent. @node may be
immutable.</doc>
        <source-position filename="../json-glib/json-types.h" line="226"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="939">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="940">the parent #JsonNode of @node</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string" c:identifier="json_node_set_string">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="977">Sets @value as the string content of the @node, replacing any existing
content.

It is an error to call this on an immutable node, or on a node which is not
a value node.</doc>
        <source-position filename="../json-glib/json-types.h" line="260"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="979">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="980">a string value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="json_node_set_value">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="737">Sets @value inside @node. The passed #GValue is copied into the #JsonNode.

It is an error to call this on an immutable node, or on a node which is not
a value node.</doc>
        <source-position filename="../json-glib/json-types.h" line="254"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="739">a #JsonNode initialized to %JSON_NODE_VALUE</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="740">the #GValue to set</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_array" c:identifier="json_node_take_array">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="622">Sets @array into @node without increasing the #JsonArray reference count.

It is an error to call this on an immutable node, or a node which is not
an array node.</doc>
        <source-position filename="../json-glib/json-types.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="624">a #JsonNode initialized to %JSON_NODE_ARRAY</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="array" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="625">a #JsonArray</doc>
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_object" c:identifier="json_node_take_object">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="525">Sets @object inside @node. The reference count of @object is not increased.

It is an error to call this on an immutable node, or on a node which is not
an object node.</doc>
        <source-position filename="../json-glib/json-types.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="527">a #JsonNode initialized to %JSON_NODE_OBJECT</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="528">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="type_name" c:identifier="json_node_type_name">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="883">Retrieves the user readable name of the data type contained by @node.</doc>
        <source-position filename="../json-glib/json-types.h" line="231"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="889">a string containing the name of the type. The returned string
  is owned by the node and should never be modified or freed</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="885">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="json_node_unref" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="474">Decrement the reference count of @node. If it reaches zero, the node is
freed.</doc>
        <source-position filename="../json-glib/json-types.h" line="219"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-node.c"
                 line="476">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="NodeType"
                 glib:type-name="JsonNodeType"
                 glib:get-type="json_node_type_get_type"
                 c:type="JsonNodeType">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="124">Indicates the content of a #JsonNode.</doc>
      <member name="object"
              value="0"
              c:identifier="JSON_NODE_OBJECT"
              glib:nick="object">
        <doc xml:space="preserve"
             filename="../json-glib/json-types.h"
             line="126">The node contains a #JsonObject</doc>
      </member>
      <member name="array"
              value="1"
              c:identifier="JSON_NODE_ARRAY"
              glib:nick="array">
        <doc xml:space="preserve"
             filename="../json-glib/json-types.h"
             line="127">The node contains a #JsonArray</doc>
      </member>
      <member name="value"
              value="2"
              c:identifier="JSON_NODE_VALUE"
              glib:nick="value">
        <doc xml:space="preserve"
             filename="../json-glib/json-types.h"
             line="128">The node contains a fundamental type</doc>
      </member>
      <member name="null"
              value="3"
              c:identifier="JSON_NODE_NULL"
              glib:nick="null">
        <doc xml:space="preserve"
             filename="../json-glib/json-types.h"
             line="129">Special type, for nodes containing null</doc>
      </member>
    </enumeration>
    <record name="Object"
            c:type="JsonObject"
            glib:type-name="JsonObject"
            glib:get-type="json_object_get_type"
            c:symbol-prefix="object">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="108">A JSON object type. The contents of the #JsonObject structure are private
and should only be accessed by the provided API</doc>
      <source-position filename="../json-glib/json-types.h" line="114"/>
      <constructor name="new" c:identifier="json_object_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="52">Creates a new #JsonObject, an JSON object type representation.</doc>
        <source-position filename="../json-glib/json-types.h" line="310"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="57">the newly created #JsonObject</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
      </constructor>
      <method name="add_member"
              c:identifier="json_object_add_member"
              deprecated="1"
              deprecated-version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="196">Adds a member named @member_name and containing @node into a #JsonObject.
The object will take ownership of the #JsonNode.

This function will return if the @object already contains a member
@member_name.</doc>
        <doc-deprecated xml:space="preserve">Use json_object_set_member() instead</doc-deprecated>
        <source-position filename="../json-glib/json-types.h" line="317"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="198">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="199">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="node" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="200">the value of the member</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup_member"
              c:identifier="json_object_dup_member"
              version="0.6">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="525">Retrieves a copy of the #JsonNode containing the value of @member_name
inside a #JsonObject</doc>
        <source-position filename="../json-glib/json-types.h" line="358"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="533">a copy of the node for the
  requested object member or %NULL. Use json_node_unref() when done.</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="527">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="528">the name of the JSON object member to access</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="json_object_equal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="947">Check whether @a and @b are equal #JsonObjects, meaning they have the same
set of members, and the values of corresponding members are equal.</doc>
        <source-position filename="../json-glib/json-types.h" line="404"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="955">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="949">a JSON object</doc>
            <type name="Object" c:type="gconstpointer"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="950">another JSON object</doc>
            <type name="Object" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_member"
              c:identifier="json_object_foreach_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="876">Iterates over all members of @object and calls @func on
each one of them.

It is safe to change the value of a #JsonNode of the @object
from within the iterator @func, but it is not safe to add or
remove members from the @object.</doc>
        <source-position filename="../json-glib/json-types.h" line="392"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="878">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="879">the function to be called on each member</doc>
            <type name="ObjectForeach" c:type="JsonObjectForeach"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="880">data to be passed to the function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_array_member"
              c:identifier="json_object_get_array_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="743">Convenience function that retrieves the array
stored in @member_name of @object

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="376"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="753">the array inside the object's member</doc>
          <type name="Array" c:type="JsonArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="745">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="746">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean_member"
              c:identifier="json_object_get_boolean_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="642">Convenience function that retrieves the boolean value
stored in @member_name of @object

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="367"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="652">the boolean value of the object's member</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="644">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="645">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_double_member"
              c:identifier="json_object_get_double_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="612">Convenience function that retrieves the floating point value
stored in @member_name of @object

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="364"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="622">the floating point value of the object's member</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="614">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="615">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int_member"
              c:identifier="json_object_get_int_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="582">Convenience function that retrieves the integer value
stored in @member_name of @object

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="361"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="592">the integer value of the object's member</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="584">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="585">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_member" c:identifier="json_object_get_member">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="561">Retrieves the #JsonNode containing the value of @member_name inside
a #JsonObject.</doc>
        <source-position filename="../json-glib/json-types.h" line="355"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="569">a pointer to the node for the
  requested object member, or %NULL</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="563">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="564">the name of the JSON object member to access</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_members" c:identifier="json_object_get_members">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="469">Retrieves all the names of the members of a #JsonObject. You can
obtain the value for each member using json_object_get_member().</doc>
        <source-position filename="../json-glib/json-types.h" line="353"/>
        <return-value transfer-ownership="container" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="476">a
  #GList of member names, or %NULL. The content of the list is owned
  by the #JsonObject and should never be modified or freed. When you
  have finished using the returned list, use g_list_free() to free
  the resources it has allocated.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="471">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_null_member"
              c:identifier="json_object_get_null_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="672">Convenience function that checks whether the value
stored in @member_name of @object is null

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="373"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="682">%TRUE if the value is null</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="674">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="675">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_member"
              c:identifier="json_object_get_object_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="776">Convenience function that retrieves the object
stored in @member_name of @object. It is an error to specify a @member_name
which does not exist.

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="379"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="787">the object inside the object’s
   member, or %NULL if the value for the member is `null`</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="778">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="779">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="json_object_get_size">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="830">Retrieves the number of members of a #JsonObject.</doc>
        <source-position filename="../json-glib/json-types.h" line="390"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="836">the number of members</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="832">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string_member"
              c:identifier="json_object_get_string_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="710">Convenience function that retrieves the string value
stored in @member_name of @object

See also: json_object_get_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="370"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="720">the string value of the object's member</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="712">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="713">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_values" c:identifier="json_object_get_values">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="499">Retrieves all the values of the members of a #JsonObject.</doc>
        <source-position filename="../json-glib/json-types.h" line="388"/>
        <return-value transfer-ownership="container" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="505">a
  #GList of #JsonNodes, or %NULL. The content of the list is owned by the
  #JsonObject and should never be modified or freed. When you have finished
  using the returned list, use g_list_free() to free the resources it has
  allocated.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Node"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="501">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_member" c:identifier="json_object_has_member">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="811">Checks whether @object has a member named @member_name.</doc>
        <source-position filename="../json-glib/json-types.h" line="382"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="818">%TRUE if the JSON object has the requested member</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="813">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="814">the name of a JSON object member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="json_object_hash" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="910">Calculate a hash value for the given @key (a #JsonObject).

The hash is calculated over the object and all its members, recursively. If
the object is immutable, this is a fast operation; otherwise, it scales
proportionally with the number of members in the object.</doc>
        <source-position filename="../json-glib/json-types.h" line="402"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="920">hash value for @key</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="912">a JSON object to hash</doc>
            <type name="Object" c:type="gconstpointer"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_immutable"
              c:identifier="json_object_is_immutable"
              version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="152">Check whether the given @object has been marked as immutable by calling
json_object_seal() on it.</doc>
        <source-position filename="../json-glib/json-types.h" line="399"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="160">%TRUE if the @object is immutable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="154">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="json_object_ref">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="75">Increase by one the reference count of a #JsonObject.</doc>
        <source-position filename="../json-glib/json-types.h" line="312"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="81">the passed #JsonObject, with the reference count
  increased by one.</doc>
          <type name="Object" c:type="JsonObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="77">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_member" c:identifier="json_object_remove_member">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="846">Removes @member_name from @object, freeing its allocated resources.</doc>
        <source-position filename="../json-glib/json-types.h" line="385"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="848">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="849">the name of the member to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="seal" c:identifier="json_object_seal" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="119">Seals the #JsonObject, making it immutable to further changes. This will
recursively seal all members of the object too.

If the @object is already immutable, this is a no-op.</doc>
        <source-position filename="../json-glib/json-types.h" line="397"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="121">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_array_member"
              c:identifier="json_object_set_array_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="393">Convenience function for setting an array @value of
@member_name inside @object.

The @object will take ownership of the passed #JsonArray

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="345"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="395">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="396">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="397">the value of the member</doc>
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean_member"
              c:identifier="json_object_set_boolean_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="314">Convenience function for setting a boolean @value of
@member_name inside @object.

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="334"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="316">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="317">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="318">the value of the member</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_double_member"
              c:identifier="json_object_set_double_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="290">Convenience function for setting a floating point @value
of @member_name inside @object.

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="330"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="292">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="293">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="294">the value of the member</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int_member"
              c:identifier="json_object_set_int_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="266">Convenience function for setting an integer @value of
@member_name inside @object.

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="326"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="268">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="269">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="270">the value of the member</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_member"
              c:identifier="json_object_set_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="230">Sets @node as the value of @member_name inside @object.

If @object already contains a member called @member_name then
the member's current value is overwritten. Otherwise, a new
member is added to @object.</doc>
        <source-position filename="../json-glib/json-types.h" line="322"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="232">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="233">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="node" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="234">the value of the member</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_null_member"
              c:identifier="json_object_set_null_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="371">Convenience function for setting a null @value of
@member_name inside @object.

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="342"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="373">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="374">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_object_member"
              c:identifier="json_object_set_object_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="431">Convenience function for setting an object @value of
@member_name inside @object.

The @object will take ownership of the passed #JsonObject

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="349"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="433">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="434">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="435">the value of the member</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string_member"
              c:identifier="json_object_set_string_member"
              version="0.8">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="338">Convenience function for setting a string @value of
@member_name inside @object.

See also: json_object_set_member()</doc>
        <source-position filename="../json-glib/json-types.h" line="338"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="340">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="341">the name of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="342">the value of the member</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="json_object_unref">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="95">Decreases by one the reference count of a #JsonObject. If the
reference count reaches zero, the object is destroyed and all
its allocated resources are freed.</doc>
        <source-position filename="../json-glib/json-types.h" line="314"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="97">a #JsonObject</doc>
            <type name="Object" c:type="JsonObject*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="ObjectForeach" c:type="JsonObjectForeach" version="0.8">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="140">The function to be passed to json_object_foreach_member(). You
should not add or remove members to and from @object within
this function. It is safe to change the value of @member_node.</doc>
      <source-position filename="../json-glib/json-types.h" line="153"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="142">the iterated #JsonObject</doc>
          <type name="Object" c:type="JsonObject*"/>
        </parameter>
        <parameter name="member_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="143">the name of the member</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="member_node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="144">a #JsonNode containing the @member_name value</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="../json-glib/json-types.h"
               line="145">data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ObjectIter" c:type="JsonObjectIter" version="1.2">
      <doc xml:space="preserve"
           filename="../json-glib/json-types.h"
           line="407">An iterator used to iterate over the members of a #JsonObject. This must
be allocated on the stack and initialised using json_object_iter_init().
The order in which members are returned by the iterator is undefined. The
iterator is invalidated if its #JsonObject is modified during iteration.

All the fields in the #JsonObjectIter structure are private and should
never be accessed directly.</doc>
      <source-position filename="../json-glib/json-types.h" line="425"/>
      <field name="priv_pointer" readable="0" private="1">
        <array zero-terminated="0" fixed-size="6">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="priv_int" readable="0" private="1">
        <array zero-terminated="0" fixed-size="2">
          <type name="gint" c:type="int"/>
        </array>
      </field>
      <field name="priv_boolean" readable="0" private="1">
        <array zero-terminated="0" fixed-size="1">
          <type name="gboolean" c:type="gboolean"/>
        </array>
      </field>
      <method name="init" c:identifier="json_object_iter_init" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="1006">Initialise the @iter and associate it with @object.

|[&lt;!-- language="C" --&gt;
JsonObjectIter iter;
const gchar *member_name;
JsonNode *member_node;

json_object_iter_init (&amp;iter, some_object);
while (json_object_iter_next (&amp;iter, &amp;member_name, &amp;member_node))
  {
    // Do something with @member_name and @member_node.
  }
]|</doc>
        <source-position filename="../json-glib/json-types.h" line="428"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="1008">an uninitialised #JsonObjectIter</doc>
            <type name="ObjectIter" c:type="JsonObjectIter*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="1009">the #JsonObject to iterate over</doc>
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="json_object_iter_next" version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-object.c"
             line="1041">Advance @iter and retrieve the next member in the object. If the end of the
object is reached, %FALSE is returned and @member_name and @member_node are
set to invalid values. After that point, the @iter is invalid.

The order in which members are returned by the iterator is undefined. The
iterator is invalidated if its #JsonObject is modified during iteration.</doc>
        <source-position filename="../json-glib/json-types.h" line="431"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-object.c"
               line="1056">%TRUE if @member_name and @member_node are valid; %FALSE if the end
   of the object has been reached</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="1043">a #JsonObjectIter</doc>
            <type name="ObjectIter" c:type="JsonObjectIter*"/>
          </instance-parameter>
          <parameter name="member_name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="1044">return
   location for the member name, or %NULL to ignore</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="member_node"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-object.c"
                 line="1046">return
   location for the member value, or %NULL to ignore</doc>
            <type name="Node" c:type="JsonNode**"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Parser"
           c:symbol-prefix="parser"
           c:type="JsonParser"
           parent="GObject.Object"
           glib:type-name="JsonParser"
           glib:get-type="json_parser_get_type"
           glib:type-struct="ParserClass">
      <doc xml:space="preserve"
           filename="../json-glib/json-parser.h"
           line="76">JSON data streams parser. The contents of the #JsonParser structure are
private and should only be accessed via the provided API.</doc>
      <source-position filename="../json-glib/json-parser.h" line="141"/>
      <constructor name="new" c:identifier="json_parser_new">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="943">Creates a new #JsonParser instance. You can use the #JsonParser to
load a JSON stream from either a file or a buffer and then walk the
hierarchy using the data types API.</doc>
        <source-position filename="../json-glib/json-parser.h" line="149"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="950">the newly created #JsonParser. Use g_object_unref()
  to release all the memory it allocates.</doc>
          <type name="Parser" c:type="JsonParser*"/>
        </return-value>
      </constructor>
      <constructor name="new_immutable"
                   c:identifier="json_parser_new_immutable"
                   version="1.2">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="959">Creates a new #JsonParser instance with its #JsonParser:immutable property
set to %TRUE to create immutable output trees.</doc>
        <source-position filename="../json-glib/json-parser.h" line="151"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="966">a new #JsonParser</doc>
          <type name="Parser" c:type="JsonParser*"/>
        </return-value>
      </constructor>
      <virtual-method name="array_element">
        <source-position filename="../json-glib/json-parser.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="array" transfer-ownership="none">
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
          <parameter name="index_" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="array_end">
        <source-position filename="../json-glib/json-parser.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="array" transfer-ownership="none">
            <type name="Array" c:type="JsonArray*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="array_start">
        <source-position filename="../json-glib/json-parser.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="error">
        <source-position filename="../json-glib/json-parser.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="object_end">
        <source-position filename="../json-glib/json-parser.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="object_member">
        <source-position filename="../json-glib/json-parser.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <type name="Object" c:type="JsonObject*"/>
          </parameter>
          <parameter name="member_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="object_start">
        <source-position filename="../json-glib/json-parser.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="parse_end">
        <source-position filename="../json-glib/json-parser.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="parse_start">
        <source-position filename="../json-glib/json-parser.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_current_line"
              c:identifier="json_parser_get_current_line">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1231">Retrieves the line currently parsed, starting from 1.

This function has defined behaviour only while parsing; calling this
function from outside the signal handlers emitted by #JsonParser will
yield 0.</doc>
        <source-position filename="../json-glib/json-parser.h" line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1241">the currently parsed line, or 0.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1233">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_pos"
              c:identifier="json_parser_get_current_pos">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1254">Retrieves the current position inside the current line, starting
from 0.

This function has defined behaviour only while parsing; calling this
function from outside the signal handlers emitted by #JsonParser will
yield 0.</doc>
        <source-position filename="../json-glib/json-parser.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1265">the position in the current line, or 0.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1256">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="json_parser_get_root">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1180">Retrieves the top level node from the parsed JSON stream. If the parser input
was an empty string, or if parsing failed, this will be %NULL. It will also
be %NULL if it has been stolen using json_parser_steal_root().</doc>
        <source-position filename="../json-glib/json-parser.h" line="178"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1188">the root #JsonNode . The returned
  node is owned by the #JsonParser and should never be modified
  or freed.</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1182">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_assignment"
              c:identifier="json_parser_has_assignment"
              version="0.4">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1278">A JSON data stream might sometimes contain an assignment, like:

|[
  var _json_data = { "member_name" : [ ...
]|

even though it would technically constitute a violation of the RFC.

#JsonParser will ignore the left hand identifier and parse the right
hand value of the assignment. #JsonParser will record, though, the
existence of the assignment in the data stream and the variable name
used.</doc>
        <source-position filename="../json-glib/json-parser.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1297">%TRUE if there was an assignment, %FALSE otherwise. If
  @variable_name is not %NULL it will be set to the name of the variable
  used in the assignment. The string is owned by #JsonParser and should
  never be modified or freed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1280">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="variable_name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1281">Return location for the variable
  name, or %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_data"
              c:identifier="json_parser_load_from_data"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1134">Loads a JSON stream from a buffer and parses it. You can call this function
multiple times with the same #JsonParser object, but the contents of the
parser will be destroyed each time.</doc>
        <source-position filename="../json-glib/json-parser.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1145">%TRUE if the buffer was succesfully parser. In case
  of error, @error is set accordingly and %FALSE is returned</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1136">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1137">the buffer to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1138">the length of the buffer, or -1</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="json_parser_load_from_file"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1083">Loads a JSON stream from the content of @filename and parses it. See
json_parser_load_from_data().</doc>
        <source-position filename="../json-glib/json-parser.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1092">%TRUE if the file was successfully loaded and parsed.
  In case of error, @error is set accordingly and %FALSE is returned</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1085">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1086">the path for the file to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_stream"
              c:identifier="json_parser_load_from_stream"
              version="0.12"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1322">Loads the contents of an input stream and parses them.

If @cancellable is not %NULL, then the operation can be cancelled by
triggering the @cancellable object from another thread. If the
operation was cancelled, the error %G_IO_ERROR_CANCELLED will be set
on the passed @error.</doc>
        <source-position filename="../json-glib/json-parser.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1336">%TRUE if the data stream was successfully read and
  parsed, and %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1324">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1325">an open #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1326">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_stream_async"
              c:identifier="json_parser_load_from_stream_async"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1490">Asynchronously reads the contents of @stream.

For more details, see json_parser_load_from_stream() which is the
synchronous version of this call.

When the operation is finished, @callback will be called. You should
then call json_parser_load_from_stream_finish() to get the result
of the operation.</doc>
        <source-position filename="../json-glib/json-parser.h" line="167"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1492">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1493">a #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1494">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1495">a #GAsyncReadyCallback to call when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1496">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_stream_finish"
              c:identifier="json_parser_load_from_stream_finish"
              version="0.12"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1413">Finishes an asynchronous stream loading started with
json_parser_load_from_stream_async().</doc>
        <source-position filename="../json-glib/json-parser.h" line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1422">%TRUE if the content of the stream was successfully retrieves
  and parsed, and %FALSE otherwise. In case of error, the #GError will be
  filled accordingly.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1415">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1416">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="steal_root"
              c:identifier="json_parser_steal_root"
              version="1.4">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="1205">Steals the top level node from the parsed JSON stream. This will be %NULL
in the same situations as json_parser_get_root() returns %NULL.</doc>
        <source-position filename="../json-glib/json-parser.h" line="180"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-parser.c"
               line="1212">the top level #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="1207">a #JsonParser</doc>
            <type name="Parser" c:type="JsonParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="immutable"
                version="1.2"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="209">Whether the #JsonNode tree built by the #JsonParser should be immutable
when created. Making the output immutable on creation avoids the expense
of traversing it to make it immutable later.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ParserPrivate" c:type="JsonParserPrivate*"/>
      </field>
      <glib:signal name="array-element" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="319">The ::array-element signal is emitted each time the #JsonParser
has successfully parsed a single element of a #JsonArray. The
array and element index are passed to the signal handlers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="322">a #JsonArray</doc>
            <type name="Array"/>
          </parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="323">the index of the newly parsed element</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="array-end" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="338">The ::array-end signal is emitted each time the #JsonParser
has successfully parsed an entire #JsonArray</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="array" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="341">the parsed #JsonArray</doc>
            <type name="Array"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="array-start" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="305">The ::array-start signal is emitted each time the #JsonParser
starts parsing a #JsonArray</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="error" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="354">The ::error signal is emitted each time a #JsonParser encounters
an error in a JSON stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="357">a pointer to the #GError</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="object-end" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="289">The ::object-end signal is emitted each time the #JsonParser
has successfully parsed an entire #JsonObject.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="292">the parsed #JsonObject</doc>
            <type name="Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="object-member" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="270">The ::object-member signal is emitted each time the #JsonParser
has successfully parsed a single member of a #JsonObject. The
object and member are passed to the signal handlers.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="273">a #JsonObject</doc>
            <type name="Object"/>
          </parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-parser.c"
                 line="274">the name of the newly parsed member</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="object-start" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="256">The ::object-start signal is emitted each time the #JsonParser
starts parsing a #JsonObject.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="parse-end" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="242">The ::parse-end signal is emitted when the parser successfully
finished parsing a JSON data stream</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="parse-start" when="last">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.c"
             line="227">The ::parse-start signal is emitted when the parser began parsing
a JSON data stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ParserClass"
            c:type="JsonParserClass"
            glib:is-gtype-struct-for="Parser">
      <doc xml:space="preserve"
           filename="../json-glib/json-parser.h"
           line="90">#JsonParser class.</doc>
      <source-position filename="../json-glib/json-parser.h" line="141"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="parse_start">
        <callback name="parse_start">
          <source-position filename="../json-glib/json-parser.h" line="110"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="object_start">
        <callback name="object_start">
          <source-position filename="../json-glib/json-parser.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="object_member">
        <callback name="object_member">
          <source-position filename="../json-glib/json-parser.h" line="113"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="JsonObject*"/>
            </parameter>
            <parameter name="member_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="object_end">
        <callback name="object_end">
          <source-position filename="../json-glib/json-parser.h" line="116"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="Object" c:type="JsonObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="array_start">
        <callback name="array_start">
          <source-position filename="../json-glib/json-parser.h" line="119"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="array_element">
        <callback name="array_element">
          <source-position filename="../json-glib/json-parser.h" line="120"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
            <parameter name="array" transfer-ownership="none">
              <type name="Array" c:type="JsonArray*"/>
            </parameter>
            <parameter name="index_" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="array_end">
        <callback name="array_end">
          <source-position filename="../json-glib/json-parser.h" line="123"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
            <parameter name="array" transfer-ownership="none">
              <type name="Array" c:type="JsonArray*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="parse_end">
        <callback name="parse_end">
          <source-position filename="../json-glib/json-parser.h" line="126"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="error">
        <callback name="error">
          <source-position filename="../json-glib/json-parser.h" line="128"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="Parser" c:type="JsonParser*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="const GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_json_reserved1" introspectable="0">
        <callback name="_json_reserved1">
          <source-position filename="../json-glib/json-parser.h" line="133"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved2" introspectable="0">
        <callback name="_json_reserved2">
          <source-position filename="../json-glib/json-parser.h" line="134"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved3" introspectable="0">
        <callback name="_json_reserved3">
          <source-position filename="../json-glib/json-parser.h" line="135"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved4" introspectable="0">
        <callback name="_json_reserved4">
          <source-position filename="../json-glib/json-parser.h" line="136"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved5" introspectable="0">
        <callback name="_json_reserved5">
          <source-position filename="../json-glib/json-parser.h" line="137"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved6" introspectable="0">
        <callback name="_json_reserved6">
          <source-position filename="../json-glib/json-parser.h" line="138"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved7" introspectable="0">
        <callback name="_json_reserved7">
          <source-position filename="../json-glib/json-parser.h" line="139"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_reserved8" introspectable="0">
        <callback name="_json_reserved8">
          <source-position filename="../json-glib/json-parser.h" line="140"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ParserError"
                 glib:type-name="JsonParserError"
                 glib:get-type="json_parser_error_get_type"
                 c:type="JsonParserError"
                 glib:error-domain="json-parser-error-quark">
      <doc xml:space="preserve"
           filename="../json-glib/json-parser.h"
           line="49">Error enumeration for #JsonParser

This enumeration can be extended at later date</doc>
      <member name="parse"
              value="0"
              c:identifier="JSON_PARSER_ERROR_PARSE"
              glib:nick="parse">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="51">parse error</doc>
      </member>
      <member name="trailing_comma"
              value="1"
              c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA"
              glib:nick="trailing-comma">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="52">unexpected trailing comma</doc>
      </member>
      <member name="missing_comma"
              value="2"
              c:identifier="JSON_PARSER_ERROR_MISSING_COMMA"
              glib:nick="missing-comma">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="53">expected comma</doc>
      </member>
      <member name="missing_colon"
              value="3"
              c:identifier="JSON_PARSER_ERROR_MISSING_COLON"
              glib:nick="missing-colon">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="54">expected colon</doc>
      </member>
      <member name="invalid_bareword"
              value="4"
              c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD"
              glib:nick="invalid-bareword">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="55">invalid bareword</doc>
      </member>
      <member name="empty_member_name"
              value="5"
              c:identifier="JSON_PARSER_ERROR_EMPTY_MEMBER_NAME"
              glib:nick="empty-member-name">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="56">empty member name (Since: 0.16)</doc>
      </member>
      <member name="invalid_data"
              value="6"
              c:identifier="JSON_PARSER_ERROR_INVALID_DATA"
              glib:nick="invalid-data">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="57">invalid data (Since: 0.18)</doc>
      </member>
      <member name="unknown"
              value="7"
              c:identifier="JSON_PARSER_ERROR_UNKNOWN"
              glib:nick="unknown">
        <doc xml:space="preserve"
             filename="../json-glib/json-parser.h"
             line="58">unknown error</doc>
      </member>
      <function name="quark" c:identifier="json_parser_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="ParserPrivate" c:type="JsonParserPrivate" disguised="1">
      <source-position filename="../json-glib/json-parser.h" line="46"/>
    </record>
    <class name="Path"
           c:symbol-prefix="path"
           c:type="JsonPath"
           version="0.14"
           parent="GObject.Object"
           glib:type-name="JsonPath"
           glib:get-type="json_path_get_type"
           glib:type-struct="PathClass">
      <doc xml:space="preserve"
           filename="../json-glib/json-path.h"
           line="59">The `JsonPath` structure is an opaque object whose members cannot be
directly accessed except through the provided API.</doc>
      <source-position filename="../json-glib/json-path.h" line="77"/>
      <constructor name="new" c:identifier="json_path_new" version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-path.c"
             line="264">Creates a new #JsonPath instance.

Once created, the #JsonPath object should be used with json_path_compile()
and json_path_match().</doc>
        <source-position filename="../json-glib/json-path.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-path.c"
               line="272">the newly created #JsonPath instance. Use
  g_object_unref() to free the allocated resources when done</doc>
          <type name="Path" c:type="JsonPath*"/>
        </return-value>
      </constructor>
      <function name="query"
                c:identifier="json_path_query"
                version="0.14"
                throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-path.c"
             line="963">Queries a JSON tree using a JSONPath expression.

This function is a simple wrapper around json_path_new(),
json_path_compile() and json_path_match(). It implicitly
creates a #JsonPath instance, compiles @expression and
matches it against the JSON tree pointed by @root.</doc>
        <source-position filename="../json-glib/json-path.h" line="96"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-path.c"
               line="976">a newly-created #JsonNode of type
  %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
  Use json_node_unref() when done</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <parameter name="expression" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="965">a JSONPath expression</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="966">the root of a JSON tree</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </function>
      <method name="compile"
              c:identifier="json_path_compile"
              version="0.14"
              throws="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-path.c"
             line="348">Validates and decomposes @expression.

A JSONPath expression must be compiled before calling json_path_match().</doc>
        <source-position filename="../json-glib/json-path.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-path.c"
               line="358">%TRUE on success; on error, @error will be set with
  the %JSON_PATH_ERROR domain and a code from the #JsonPathError
  enumeration, and %FALSE will be returned</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="350">a #JsonPath</doc>
            <type name="Path" c:type="JsonPath*"/>
          </instance-parameter>
          <parameter name="expression" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="351">a JSONPath expression</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="json_path_match" version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-path.c"
             line="925">Matches the JSON tree pointed by @root using the expression compiled
into the #JsonPath.

The matching #JsonNodes will be copied into a #JsonArray and
returned wrapped in a #JsonNode.</doc>
        <source-position filename="../json-glib/json-path.h" line="92"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-path.c"
               line="936">a newly-created #JsonNode of type
  %JSON_NODE_ARRAY containing an array of matching #JsonNodes.
  Use json_node_unref() when done</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="927">a compiled #JsonPath</doc>
            <type name="Path" c:type="JsonPath*"/>
          </instance-parameter>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-path.c"
                 line="928">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="PathClass"
            c:type="JsonPathClass"
            disguised="1"
            glib:is-gtype-struct-for="Path"
            version="0.14">
      <doc xml:space="preserve"
           filename="../json-glib/json-path.h"
           line="69">The `JsonPathClass` structure is an opaque object class whose members
cannot be directly accessed.</doc>
      <source-position filename="../json-glib/json-path.h" line="77"/>
    </record>
    <enumeration name="PathError"
                 version="0.14"
                 glib:type-name="JsonPathError"
                 glib:get-type="json_path_error_get_type"
                 c:type="JsonPathError"
                 glib:error-domain="json-path-error-quark">
      <doc xml:space="preserve"
           filename="../json-glib/json-path.h"
           line="47">Error code enumeration for the %JSON_PATH_ERROR domain.</doc>
      <member name="query"
              value="0"
              c:identifier="JSON_PATH_ERROR_INVALID_QUERY"
              glib:nick="query">
        <doc xml:space="preserve"
             filename="../json-glib/json-path.h"
             line="49">Invalid query</doc>
      </member>
      <function name="quark" c:identifier="json_path_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="Reader"
           c:symbol-prefix="reader"
           c:type="JsonReader"
           version="0.12"
           parent="GObject.Object"
           glib:type-name="JsonReader"
           glib:get-type="json_reader_get_type"
           glib:type-struct="ReaderClass">
      <doc xml:space="preserve"
           filename="../json-glib/json-reader.h"
           line="80">The `JsonReader` structure contains only private data and should
be accessed using the provided API</doc>
      <source-position filename="../json-glib/json-reader.h" line="113"/>
      <constructor name="new" c:identifier="json_reader_new" version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="197">Creates a new #JsonReader. You can use this object to read the contents of
the JSON tree starting from @node</doc>
        <source-position filename="../json-glib/json-reader.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="204">the newly created #JsonReader. Use g_object_unref() to
  release the allocated resources when done</doc>
          <type name="Reader" c:type="JsonReader*"/>
        </return-value>
        <parameters>
          <parameter name="node"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="199">a #JsonNode, or %NULL</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="count_elements"
              c:identifier="json_reader_count_elements"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="561">Counts the elements of the current position, if @reader is
positioned on an array</doc>
        <source-position filename="../json-glib/json-reader.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="568">the number of elements, or -1. In case of failure
  the #JsonReader is set in an error state</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="563">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="count_members"
              c:identifier="json_reader_count_members"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="775">Counts the members of the current position, if @reader is
positioned on an object</doc>
        <source-position filename="../json-glib/json-reader.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="782">the number of members, or -1. In case of failure
  the #JsonReader is set in an error state</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="777">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_element"
              c:identifier="json_reader_end_element"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="525">Moves the cursor back to the previous node after being positioned
inside an array

This function resets the error state of @reader, if any was set</doc>
        <source-position filename="../json-glib/json-reader.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="527">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_member"
              c:identifier="json_reader_end_member"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="686">Moves the cursor back to the previous node after being positioned
inside an object

This function resets the error state of @reader, if any was set</doc>
        <source-position filename="../json-glib/json-reader.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="688">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_boolean_value"
              c:identifier="json_reader_get_boolean_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="975">Retrieves the boolean value of the current position of @reader</doc>
        <source-position filename="../json-glib/json-reader.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="981">the boolean value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="977">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_double_value"
              c:identifier="json_reader_get_double_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="892">Retrieves the floating point value of the current position of @reader</doc>
        <source-position filename="../json-glib/json-reader.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="898">the floating point value</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="894">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_error"
              c:identifier="json_reader_get_error"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="317">Retrieves the #GError currently set on @reader, if the #JsonReader
is in error state</doc>
        <source-position filename="../json-glib/json-reader.h" line="128"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="324">the pointer to the error, or %NULL</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="319">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_int_value"
              c:identifier="json_reader_get_int_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="854">Retrieves the integer value of the current position of @reader</doc>
        <source-position filename="../json-glib/json-reader.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="860">the integer value</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="856">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_member_name"
              c:identifier="json_reader_get_member_name"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="1039">Retrieves the name of the current member.</doc>
        <source-position filename="../json-glib/json-reader.h" line="152"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="1045">the name of the member, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="1041">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_null_value"
              c:identifier="json_reader_get_null_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="1013">Checks whether the value of the current position of @reader is 'null'</doc>
        <source-position filename="../json-glib/json-reader.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="1019">%TRUE if 'null' is set, and %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="1015">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string_value"
              c:identifier="json_reader_get_string_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="930">Retrieves the string value of the current position of @reader</doc>
        <source-position filename="../json-glib/json-reader.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="936">the string value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="932">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="json_reader_get_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="814">Retrieves the #JsonNode of the current position of @reader</doc>
        <source-position filename="../json-glib/json-reader.h" line="157"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="820">a #JsonNode, or %NULL. The
returned node is owned by the #JsonReader and it should not be
modified or freed directly</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="816">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_array"
              c:identifier="json_reader_is_array"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="336">Checks whether the @reader is currently on an array</doc>
        <source-position filename="../json-glib/json-reader.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="342">%TRUE if the #JsonReader is on an array, and %FALSE
  otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="338">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_object"
              c:identifier="json_reader_is_object"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="359">Checks whether the @reader is currently on an object</doc>
        <source-position filename="../json-glib/json-reader.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="365">%TRUE if the #JsonReader is on an object, and %FALSE
  otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="361">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_value"
              c:identifier="json_reader_is_value"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="382">Checks whether the @reader is currently on a value</doc>
        <source-position filename="../json-glib/json-reader.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="388">%TRUE if the #JsonReader is on a value, and %FALSE
  otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="384">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_members"
              c:identifier="json_reader_list_members"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="721">Retrieves a list of member names from the current position, if @reader
is positioned on an object.</doc>
        <source-position filename="../json-glib/json-reader.h" line="150"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="728">a newly allocated, %NULL-terminated
  array of strings holding the members name. Use g_strfreev() when
  done.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="723">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read_element"
              c:identifier="json_reader_read_element"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="406">Advances the cursor of @reader to the element @index_ of the array
or the object at the current position.

You can use the json_reader_get_value* family of functions to retrieve
the value of the element; for instance:

|[
json_reader_read_element (reader, 0);
int_value = json_reader_get_int_value (reader);
]|

After reading the value, json_reader_end_element() should be called to
reposition the cursor inside the #JsonReader, e.g.:

|[
json_reader_read_element (reader, 1);
str_value = json_reader_get_string_value (reader);
json_reader_end_element (reader);

json_reader_read_element (reader, 2);
str_value = json_reader_get_string_value (reader);
json_reader_end_element (reader);
]|

If @reader is not currently on an array or an object, or if the @index_ is
bigger than the size of the array or the object, the #JsonReader will be
put in an error state until json_reader_end_element() is called. This means
that if used conditionally, json_reader_end_element() must be called on both
code paths:

|[
if (!json_reader_read_element (reader, 1))
  {
    json_reader_end_element (reader);
    g_set_error (error, …);
    return FALSE;
  }

str_value = json_reader_get_string_value (reader);
json_reader_end_element (reader);
]|</doc>
        <source-position filename="../json-glib/json-reader.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="453">%TRUE on success, and %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="408">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="409">the index of the element</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_member"
              c:identifier="json_reader_read_member"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="600">Advances the cursor of @reader to the @member_name of the object at the
current position.

You can use the json_reader_get_value* family of functions to retrieve
the value of the member; for instance:

|[
json_reader_read_member (reader, "width");
width = json_reader_get_int_value (reader);
]|

After reading the value, json_reader_end_member() should be called to
reposition the cursor inside the #JsonReader, e.g.:

|[
json_reader_read_member (reader, "author");
author = json_reader_get_string_value (reader);
json_reader_end_member (reader);

json_reader_read_member (reader, "title");
title = json_reader_get_string_value (reader);
json_reader_end_member (reader);
]|

If @reader is not currently on an object, or if the @member_name is not
defined in the object, the #JsonReader will be put in an error state until
json_reader_end_member() is called. This means that if used conditionally,
json_reader_end_member() must be called on both code paths:

|[
if (!json_reader_read_member (reader, "title"))
  {
    json_reader_end_member (reader);
    g_set_error (error, …);
    return FALSE;
  }

str_value = json_reader_get_string_value (reader);
json_reader_end_member (reader);
]|</doc>
        <source-position filename="../json-glib/json-reader.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-reader.c"
               line="646">%TRUE on success, and %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="602">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
          <parameter name="member_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="603">the name of the member to read</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_root"
              c:identifier="json_reader_set_root"
              version="0.12">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="234">Sets the root #JsonNode to be read by @reader. The @reader will take
a copy of @root

If another #JsonNode is currently set as root, it will be replaced.</doc>
        <source-position filename="../json-glib/json-reader.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="236">a #JsonReader</doc>
            <type name="Reader" c:type="JsonReader*"/>
          </instance-parameter>
          <parameter name="root"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-reader.c"
                 line="237">a #JsonNode</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <property name="root"
                version="0.12"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.c"
             line="168">The root of the JSON tree that the #JsonReader should read.</doc>
        <type name="Node"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ReaderPrivate" c:type="JsonReaderPrivate*"/>
      </field>
    </class>
    <record name="ReaderClass"
            c:type="JsonReaderClass"
            glib:is-gtype-struct-for="Reader"
            version="0.12">
      <doc xml:space="preserve"
           filename="../json-glib/json-reader.h"
           line="96">The `JsonReaderClass` structure contains only private data</doc>
      <source-position filename="../json-glib/json-reader.h" line="113"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_json_padding0" introspectable="0">
        <callback name="_json_padding0">
          <source-position filename="../json-glib/json-reader.h" line="108"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_padding1" introspectable="0">
        <callback name="_json_padding1">
          <source-position filename="../json-glib/json-reader.h" line="109"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_padding2" introspectable="0">
        <callback name="_json_padding2">
          <source-position filename="../json-glib/json-reader.h" line="110"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_padding3" introspectable="0">
        <callback name="_json_padding3">
          <source-position filename="../json-glib/json-reader.h" line="111"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_json_padding4" introspectable="0">
        <callback name="_json_padding4">
          <source-position filename="../json-glib/json-reader.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ReaderError"
                 version="0.12"
                 glib:type-name="JsonReaderError"
                 glib:get-type="json_reader_error_get_type"
                 c:type="JsonReaderError"
                 glib:error-domain="json-reader-error-quark">
      <doc xml:space="preserve"
           filename="../json-glib/json-reader.h"
           line="54">Error codes enumeration for #JsonReader errors</doc>
      <member name="no_array"
              value="0"
              c:identifier="JSON_READER_ERROR_NO_ARRAY"
              glib:nick="no-array">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="56">No array found at the current position</doc>
      </member>
      <member name="invalid_index"
              value="1"
              c:identifier="JSON_READER_ERROR_INVALID_INDEX"
              glib:nick="invalid-index">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="57">Index out of bounds</doc>
      </member>
      <member name="no_object"
              value="2"
              c:identifier="JSON_READER_ERROR_NO_OBJECT"
              glib:nick="no-object">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="58">No object found at the current position</doc>
      </member>
      <member name="invalid_member"
              value="3"
              c:identifier="JSON_READER_ERROR_INVALID_MEMBER"
              glib:nick="invalid-member">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="59">Member not found</doc>
      </member>
      <member name="invalid_node"
              value="4"
              c:identifier="JSON_READER_ERROR_INVALID_NODE"
              glib:nick="invalid-node">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="60">No valid node found at the current position</doc>
      </member>
      <member name="no_value"
              value="5"
              c:identifier="JSON_READER_ERROR_NO_VALUE"
              glib:nick="no-value">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="61">The node at the current position does not
  hold a value</doc>
      </member>
      <member name="invalid_type"
              value="6"
              c:identifier="JSON_READER_ERROR_INVALID_TYPE"
              glib:nick="invalid-type">
        <doc xml:space="preserve"
             filename="../json-glib/json-reader.h"
             line="63">The node at the current position does not
  hold a value of the desired type</doc>
      </member>
      <function name="quark" c:identifier="json_reader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="ReaderPrivate" c:type="JsonReaderPrivate" disguised="1">
      <source-position filename="../json-glib/json-reader.h" line="51"/>
    </record>
    <interface name="Serializable"
               c:symbol-prefix="serializable"
               c:type="JsonSerializable"
               glib:type-name="JsonSerializable"
               glib:get-type="json_serializable_get_type"
               glib:type-struct="SerializableIface">
      <source-position filename="../json-glib/json-gobject.h" line="84"/>
      <virtual-method name="deserialize_property"
                      invoker="deserialize_property">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="69">Asks a #JsonSerializable implementation to deserialize the
property contained inside @property_node into @value.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="80">%TRUE if the property was successfully deserialized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="71">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="72">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="73">a pointer to an uninitialized #GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="74">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="property_node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="75">a #JsonNode containing the serialized property</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="find_property"
                      invoker="find_property"
                      version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="271">Calls the #JsonSerializableIface.find_property() implementation on
the @serializable instance. *</doc>
        <source-position filename="../json-glib/json-gobject.h" line="74"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="279">the #GParamSpec for the property
  or %NULL if no property was found</doc>
          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="273">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="274">the name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_property"
                      invoker="get_property"
                      version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="342">Calls the #JsonSerializableIface.get_property() implementation
on the @serializable instance.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="344">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="345">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="346">return location for the property value</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_properties" introspectable="0">
        <source-position filename="../json-glib/json-gobject.h" line="76"/>
        <return-value>
          <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="n_pspecs" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="serialize_property" invoker="serialize_property">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="39">Asks a #JsonSerializable implementation to serialize a #GObject
property into a #JsonNode object.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="49">a #JsonNode containing the serialized property</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="41">a #JsonSerializable object</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="42">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="43">the value of the property</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="44">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_property"
                      invoker="set_property"
                      version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="317">Calls the #JsonSerializableIface.set_property() implementation
on the @serializable instance.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="319">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="320">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="321">the property value to set</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="default_deserialize_property"
              c:identifier="json_serializable_default_deserialize_property"
              version="0.10">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="223">Calls the default implementation of the #JsonSerializable
deserialize_property() virtual function

This function can be used inside a custom implementation
of the deserialize_property() virtual function in lieu of:

|[&lt;!-- language="C" --&gt;
  JsonSerializable *iface;
  gboolean res;

  iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
  res = iface-&gt;deserialize_property (serializable, property_name,
                                     value,
                                     pspec,
                                     property_node);
]|</doc>
        <source-position filename="../json-glib/json-gobject.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="248">%TRUE if the property was successfully deserialized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="225">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="226">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="227">a pointer to an uninitialized #GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="228">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="property_node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="229">a #JsonNode containing the serialized property</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="default_serialize_property"
              c:identifier="json_serializable_default_serialize_property"
              version="0.10">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="177">Calls the default implementation of the #JsonSerializable
#JsonSerializableIface.serialize_property() virtual function.

This function can be used inside a custom implementation
of the #JsonSerializableIface.serialize_property() virtual
function in lieu of calling the default implementation
through g_type_default_interface_peek():

|[&lt;!-- language="C" --&gt;
  JsonSerializable *iface;
  JsonNode *node;

  iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
  node = iface-&gt;serialize_property (serializable, property_name,
                                    value,
                                    pspec);
]|</doc>
        <source-position filename="../json-glib/json-gobject.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="202">a #JsonNode containing the serialized
  property</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="179">a #JsonSerializable object</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="180">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="181">the value of the property</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="182">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
        </parameters>
      </method>
      <method name="deserialize_property"
              c:identifier="json_serializable_deserialize_property">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="69">Asks a #JsonSerializable implementation to deserialize the
property contained inside @property_node into @value.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="80">%TRUE if the property was successfully deserialized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="71">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="72">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="73">a pointer to an uninitialized #GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="74">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="property_node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="75">a #JsonNode containing the serialized property</doc>
            <type name="Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_property"
              c:identifier="json_serializable_find_property"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="271">Calls the #JsonSerializableIface.find_property() implementation on
the @serializable instance. *</doc>
        <source-position filename="../json-glib/json-gobject.h" line="102"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="279">the #GParamSpec for the property
  or %NULL if no property was found</doc>
          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="273">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="274">the name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_property"
              c:identifier="json_serializable_get_property"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="342">Calls the #JsonSerializableIface.get_property() implementation
on the @serializable instance.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="344">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="345">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="346">return location for the property value</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_properties"
              c:identifier="json_serializable_list_properties"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="294">Calls the #JsonSerializableIface.list_properties() implementation on
the @serializable instance.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="105"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="303">an array
  of #GParamSpec. Use g_free() to free the array when done.</doc>
          <array length="0" zero-terminated="0" c:type="GParamSpec**">
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="296">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="n_pspecs"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="297">return location for the length of the array
  of #GParamSpec returned by the function</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="serialize_property"
              c:identifier="json_serializable_serialize_property">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="39">Asks a #JsonSerializable implementation to serialize a #GObject
property into a #JsonNode object.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-serializable.c"
               line="49">a #JsonNode containing the serialized property</doc>
          <type name="Node" c:type="JsonNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="41">a #JsonSerializable object</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="42">the name of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="43">the value of the property</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="44">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property"
              c:identifier="json_serializable_set_property"
              version="0.14">
        <doc xml:space="preserve"
             filename="../json-glib/json-serializable.c"
             line="317">Calls the #JsonSerializableIface.set_property() implementation
on the @serializable instance.</doc>
        <source-position filename="../json-glib/json-gobject.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="serializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="319">a #JsonSerializable</doc>
            <type name="Serializable" c:type="JsonSerializable*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="320">a #GParamSpec</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="321">the property value to set</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="SerializableIface"
            c:type="JsonSerializableIface"
            glib:is-gtype-struct-for="Serializable">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.h"
           line="39">Interface that allows serializing and deserializing #GObject instances
with properties storing complex data types. The json_serialize_gobject()
function will check if the passed #GObject implements this interface,
so it can also be used to override the default property serialization
sequence.</doc>
      <source-position filename="../json-glib/json-gobject.h" line="84"/>
      <field name="g_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="serialize_property">
        <callback name="serialize_property">
          <source-position filename="../json-glib/json-gobject.h" line="64"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="49">a #JsonNode containing the serialized property</doc>
            <type name="Node" c:type="JsonNode*"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="41">a #JsonSerializable object</doc>
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="property_name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="42">the name of the property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="43">the value of the property</doc>
              <type name="GObject.Value" c:type="const GValue*"/>
            </parameter>
            <parameter name="pspec" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="44">a #GParamSpec</doc>
              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deserialize_property">
        <callback name="deserialize_property">
          <source-position filename="../json-glib/json-gobject.h" line="68"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="80">%TRUE if the property was successfully deserialized.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="71">a #JsonSerializable</doc>
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="property_name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="72">the name of the property</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="value"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="73">a pointer to an uninitialized #GValue</doc>
              <type name="GObject.Value" c:type="GValue*"/>
            </parameter>
            <parameter name="pspec" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="74">a #GParamSpec</doc>
              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
            </parameter>
            <parameter name="property_node" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="75">a #JsonNode containing the serialized property</doc>
              <type name="Node" c:type="JsonNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="find_property">
        <callback name="find_property">
          <source-position filename="../json-glib/json-gobject.h" line="74"/>
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve"
                 filename="../json-glib/json-serializable.c"
                 line="279">the #GParamSpec for the property
  or %NULL if no property was found</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="273">a #JsonSerializable</doc>
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="274">the name of the property</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_properties" introspectable="0">
        <callback name="list_properties" introspectable="0">
          <source-position filename="../json-glib/json-gobject.h" line="76"/>
          <return-value>
            <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="n_pspecs" transfer-ownership="none">
              <type name="guint" c:type="guint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_property">
        <callback name="set_property">
          <source-position filename="../json-glib/json-gobject.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="319">a #JsonSerializable</doc>
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="pspec" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="320">a #GParamSpec</doc>
              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="321">the property value to set</doc>
              <type name="GObject.Value" c:type="const GValue*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_property">
        <callback name="get_property">
          <source-position filename="../json-glib/json-gobject.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="serializable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="344">a #JsonSerializable</doc>
              <type name="Serializable" c:type="JsonSerializable*"/>
            </parameter>
            <parameter name="pspec" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="345">a #GParamSpec</doc>
              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
            </parameter>
            <parameter name="value"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../json-glib/json-serializable.c"
                   line="346">return location for the property value</doc>
              <type name="GObject.Value" c:type="GValue*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="VERSION_S" value="1.4.4" c:type="JSON_VERSION_S">
      <doc xml:space="preserve"
           filename="../json-glib/json-version.h"
           line="67">JSON-GLib version, encoded as a string, useful for printing and
concatenation.</doc>
      <source-position filename="../json-glib/json-version.h" line="73"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function name="boxed_can_deserialize"
              c:identifier="json_boxed_can_deserialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="263">Checks whether it is possible to deserialize a #GBoxed of
type @gboxed_type from a #JsonNode of type @node_type</doc>
      <source-position filename="../json-glib/json-gobject.h" line="164"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-gboxed.c"
             line="271">%TRUE if the type can be deserialized, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="265">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="266">a #JsonNode type</doc>
          <type name="NodeType" c:type="JsonNodeType"/>
        </parameter>
      </parameters>
    </function>
    <function name="boxed_can_serialize"
              c:identifier="json_boxed_can_serialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="226">Checks whether it is possible to serialize a #GBoxed of
type @gboxed_type into a #JsonNode. The type of the
#JsonNode is placed inside @node_type if the function
returns %TRUE and it's undefined otherwise.</doc>
      <source-position filename="../json-glib/json-gobject.h" line="161"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-gboxed.c"
             line="237">%TRUE if the type can be serialized,
  and %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="228">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node_type"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="229">the #JsonNode type to which the boxed type can be
  serialized into</doc>
          <type name="NodeType" c:type="JsonNodeType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="boxed_deserialize"
              c:identifier="json_boxed_deserialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="321">Deserializes @node into a #GBoxed of @gboxed_type</doc>
      <source-position filename="../json-glib/json-gobject.h" line="170"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-gboxed.c"
             line="328">the newly allocated #GBoxed. Use
  g_boxed_free() to release the resources allocated by this
  function</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="323">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="324">a #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="boxed_register_deserialize_func"
              c:identifier="json_boxed_register_deserialize_func"
              version="0.10"
              introspectable="0">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="181">Registers a deserialization function for a #GBoxed of type @gboxed_type
from a #JsonNode of type @node_type</doc>
      <source-position filename="../json-glib/json-gobject.h" line="157"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="183">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="184">a node type</doc>
          <type name="NodeType" c:type="JsonNodeType"/>
        </parameter>
        <parameter name="deserialize_func" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="185">deserialization function for @boxed_type from
  a #JsonNode of type @node_type</doc>
          <type name="BoxedDeserializeFunc" c:type="JsonBoxedDeserializeFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="boxed_register_serialize_func"
              c:identifier="json_boxed_register_serialize_func"
              version="0.10"
              introspectable="0">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="136">Registers a serialization function for a #GBoxed of type @gboxed_type
to a #JsonNode of type @node_type</doc>
      <source-position filename="../json-glib/json-gobject.h" line="153"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="138">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="139">a node type</doc>
          <type name="NodeType" c:type="JsonNodeType"/>
        </parameter>
        <parameter name="serialize_func" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="140">serialization function for @boxed_type into
  a #JsonNode of type @node_type</doc>
          <type name="BoxedSerializeFunc" c:type="JsonBoxedSerializeFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="boxed_serialize"
              c:identifier="json_boxed_serialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gboxed.c"
           line="291">Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type,
into a #JsonNode</doc>
      <source-position filename="../json-glib/json-gobject.h" line="167"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="../json-glib/json-gboxed.c"
             line="299">a #JsonNode with the serialization of
  the boxed type, or %NULL if serialization either failed or was not possible</doc>
        <type name="Node" c:type="JsonNode*"/>
      </return-value>
      <parameters>
        <parameter name="gboxed_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="293">a boxed type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="boxed"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-gboxed.c"
               line="294">a pointer to a #GBoxed of type @gboxed_type</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="construct_gobject"
              c:identifier="json_construct_gobject"
              version="0.4"
              deprecated="1"
              deprecated-version="0.10"
              throws="1">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="857">Deserializes a JSON data stream and creates the corresponding
#GObject class. If @gtype implements the #JsonSerializableIface
interface, it will be asked to deserialize all the JSON members
into the respective properties; otherwise, the default implementation
will be used to translate the compatible JSON native types.

Note: the JSON data stream must be an object declaration.</doc>
      <doc-deprecated xml:space="preserve">Use json_gobject_from_data() instead</doc-deprecated>
      <source-position filename="../json-glib/json-gobject.h" line="189"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="872">a #GObject or %NULL</doc>
        <type name="GObject.Object" c:type="GObject*"/>
      </return-value>
      <parameters>
        <parameter name="gtype" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="859">the #GType of object to construct</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="860">a JSON data stream</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="861">length of the data stream</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="from_string"
              c:identifier="json_from_string"
              version="1.2"
              throws="1">
      <doc xml:space="preserve"
           filename="../json-glib/json-utils.c"
           line="34">Parses the string in @str and returns a #JsonNode representing
the JSON tree.

In case of parsing error, this function returns %NULL and sets
@error appropriately.</doc>
      <source-position filename="../json-glib/json-utils.h" line="32"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-utils.c"
             line="45">a #JsonNode, or %NULL</doc>
        <type name="Node" c:type="JsonNode*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-utils.c"
               line="36">a valid UTF-8 string containing JSON data</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gobject_deserialize"
              c:identifier="json_gobject_deserialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="805">Creates a new #GObject of type @gtype, and constructs it
using the members of the passed #JsonObject</doc>
      <source-position filename="../json-glib/json-gobject.h" line="176"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="814">The newly created #GObject
  instance. Use g_object_unref() to free the resources
  allocated by this function</doc>
        <type name="GObject.Object" c:type="GObject*"/>
      </return-value>
      <parameters>
        <parameter name="gtype" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="807">the type of the #GObject to create</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="808">a #JsonNode of type %JSON_NODE_OBJECT describing the
  instance of type @gtype</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gobject_from_data"
              c:identifier="json_gobject_from_data"
              version="0.10"
              throws="1">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="887">Deserializes a JSON data stream and creates the corresponding
#GObject class. If @gtype implements the #JsonSerializableIface
interface, it will be asked to deserialize all the JSON members
into the respective properties; otherwise, the default implementation
will be used to translate the compatible JSON native types.

Note: the JSON data stream must be an object declaration.</doc>
      <source-position filename="../json-glib/json-gobject.h" line="180"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="902">a #GObject or %NULL</doc>
        <type name="GObject.Object" c:type="GObject*"/>
      </return-value>
      <parameters>
        <parameter name="gtype" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="889">the #GType of object to construct</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="890">a JSON data stream</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="891">length of the data stream, or -1 if it is NUL-terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </parameter>
      </parameters>
    </function>
    <function name="gobject_serialize"
              c:identifier="json_gobject_serialize"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="830">Creates a #JsonNode representing the passed #GObject
instance. Each member of the returned JSON object will
map to a property of the #GObject</doc>
      <source-position filename="../json-glib/json-gobject.h" line="174"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="838">the newly created #JsonNode
  of type %JSON_NODE_OBJECT. Use json_node_unref() to free
  the resources allocated by this function</doc>
        <type name="Node" c:type="JsonNode*"/>
      </return-value>
      <parameters>
        <parameter name="gobject" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="832">a #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gobject_to_data"
              c:identifier="json_gobject_to_data"
              version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="974">Serializes a #GObject into a JSON data stream, iterating recursively
over each property.

If @gobject implements the #JsonSerializableIface interface, it will
be asked to serialize all its properties; otherwise, the default
implementation will be use to translate the compatible types into
JSON native types.</doc>
      <source-position filename="../json-glib/json-gobject.h" line="185"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="987">a JSON data stream representing the passed #GObject</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="gobject" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="976">a #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="length"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="977">return value for the length of the buffer, or %NULL</doc>
          <type name="gsize" c:type="gsize*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gvariant_deserialize"
              c:identifier="json_gvariant_deserialize"
              version="0.14"
              throws="1">
      <doc xml:space="preserve"
           filename="../json-glib/json-gvariant.c"
           line="1253">Converts a JSON data structure to a GVariant value using @signature to
resolve ambiguous data types. If no error occurs, the resulting #GVariant
is guaranteed to conform to @signature.

If @signature is not %NULL but does not represent a valid GVariant type
string, %NULL is returned and error is set to %G_IO_ERROR_INVALID_ARGUMENT.
If a @signature is provided but the JSON structure cannot be mapped to it,
%NULL is returned and error is set to %G_IO_ERROR_INVALID_DATA.
If @signature is %NULL, the conversion is done based strictly on the types
in the JSON nodes.

The returned variant has a floating reference that will need to be sunk
by the caller code.</doc>
      <source-position filename="../json-glib/json-gvariant.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-gvariant.c"
             line="1273">A newly created, floating #GVariant
  compliant with @signature, or %NULL on error</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
      <parameters>
        <parameter name="json_node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="1255">A #JsonNode to convert</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
        <parameter name="signature"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="1256">A valid #GVariant type string, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gvariant_deserialize_data"
              c:identifier="json_gvariant_deserialize_data"
              version="0.14"
              throws="1">
      <doc xml:space="preserve"
           filename="../json-glib/json-gvariant.c"
           line="1297">Converts a JSON string to a #GVariant value. This method works exactly
like json_gvariant_deserialize(), but takes a JSON encoded string instead.
The string is first converted to a #JsonNode using #JsonParser, and then
json_gvariant_deserialize() is called.

The returned variant has a floating reference that will need to be sunk
by the caller code.</doc>
      <source-position filename="../json-glib/json-gvariant.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-gvariant.c"
             line="1312">A newly created, floating #GVariant compliant
  with @signature, or %NULL on error</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
      <parameters>
        <parameter name="json" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="1299">A JSON data string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="1300">The length of @json, or -1 if %NULL-terminated</doc>
          <type name="gssize" c:type="gssize"/>
        </parameter>
        <parameter name="signature"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="1301">A valid #GVariant type string, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gvariant_serialize"
              c:identifier="json_gvariant_serialize"
              version="0.14">
      <doc xml:space="preserve"
           filename="../json-glib/json-gvariant.c"
           line="258">Converts @variant to a JSON tree.</doc>
      <source-position filename="../json-glib/json-gvariant.h" line="36"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gvariant.c"
             line="264">A #JsonNode representing the root of the
  JSON data structure obtained from @variant</doc>
        <type name="Node" c:type="JsonNode*"/>
      </return-value>
      <parameters>
        <parameter name="variant" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="260">A #GVariant to convert</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gvariant_serialize_data"
              c:identifier="json_gvariant_serialize_data"
              version="0.14">
      <doc xml:space="preserve"
           filename="../json-glib/json-gvariant.c"
           line="413">Converts @variant to its JSON encoded string representation. This method
is actually a helper function. It uses json_gvariant_serialize() to obtain the
JSON tree, and then #JsonGenerator to stringify it.</doc>
      <source-position filename="../json-glib/json-gvariant.h" line="38"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gvariant.c"
             line="423">The JSON encoded string corresponding to
  @variant</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="variant" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="415">A #GVariant to convert</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
        <parameter name="length"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../json-glib/json-gvariant.c"
               line="416">Return location for the length of the returned
  string, or %NULL</doc>
          <type name="gsize" c:type="gsize*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parser_error_quark"
              c:identifier="json_parser_error_quark"
              moved-to="ParserError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="path_error_quark"
              c:identifier="json_path_error_quark"
              moved-to="PathError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="reader_error_quark"
              c:identifier="json_reader_error_quark"
              moved-to="ReaderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="serialize_gobject"
              c:identifier="json_serialize_gobject"
              deprecated="1"
              deprecated-version="0.10">
      <doc xml:space="preserve"
           filename="../json-glib/json-gobject.c"
           line="953">Serializes a #GObject into a JSON data stream. If @gobject implements
the #JsonSerializableIface interface, it will be asked to serizalize all
its properties; otherwise, the default implementation will be use to
translate the compatible types into JSON native types.</doc>
      <doc-deprecated xml:space="preserve">Use json_gobject_to_data() instead</doc-deprecated>
      <source-position filename="../json-glib/json-gobject.h" line="194"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-gobject.c"
             line="963">a JSON data stream representing the passed #GObject</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="gobject" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="955">a #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="length"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../json-glib/json-gobject.c"
               line="956">return value for the length of the buffer, or %NULL</doc>
          <type name="gsize" c:type="gsize*"/>
        </parameter>
      </parameters>
    </function>
    <function name="string_compare"
              c:identifier="json_string_compare"
              version="1.2">
      <doc xml:space="preserve"
           filename="../json-glib/json-node.c"
           line="1336">Check whether @a and @b are equal UTF-8 JSON strings and return an ordering
over them in strcmp() style.</doc>
      <source-position filename="../json-glib/json-types.h" line="295"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1344">an integer less than zero if @a &lt; @b, equal to zero if @a == @b, and
   greater than zero if @a &gt; @b</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="a" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1338">a JSON string</doc>
          <type name="utf8" c:type="gconstpointer"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1339">another JSON string</doc>
          <type name="utf8" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="string_equal"
              c:identifier="json_string_equal"
              version="1.2">
      <doc xml:space="preserve"
           filename="../json-glib/json-node.c"
           line="1319">Check whether @a and @b are equal UTF-8 JSON strings.</doc>
      <source-position filename="../json-glib/json-types.h" line="292"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1326">%TRUE if @a and @b are equal; %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="a" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1321">a JSON string</doc>
          <type name="utf8" c:type="gconstpointer"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1322">another JSON string</doc>
          <type name="utf8" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="string_hash" c:identifier="json_string_hash" version="1.2">
      <doc xml:space="preserve"
           filename="../json-glib/json-node.c"
           line="1300">Calculate a hash value for the given @key (a UTF-8 JSON string).

Note: Member names are compared byte-wise, without applying any Unicode
decomposition or normalisation. This is not explicitly mentioned in the JSON
standard (ECMA-404), but is assumed.</doc>
      <source-position filename="../json-glib/json-types.h" line="290"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../json-glib/json-node.c"
             line="1310">hash value for @key</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-node.c"
               line="1302">a JSON string to hash</doc>
          <type name="utf8" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="to_string" c:identifier="json_to_string" version="1.2">
      <doc xml:space="preserve"
           filename="../json-glib/json-utils.c"
           line="72">Generates a stringified JSON representation of the contents of
the passed @node.</doc>
      <source-position filename="../json-glib/json-utils.h" line="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../json-glib/json-utils.c"
             line="80">the string representation of the #JsonNode</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="node" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-utils.c"
               line="74">a #JsonNode</doc>
          <type name="Node" c:type="JsonNode*"/>
        </parameter>
        <parameter name="pretty" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../json-glib/json-utils.c"
               line="75">whether the output should be prettyfied for printing</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
