Class

JsonReader

since: 0.12

Description [src]

class Json.Reader : GObject.Object
{
  /* No available fields */
}

JsonReader provides a simple, cursor-based API for parsing a JSON DOM.

It is similar, in spirit, to the XML Reader API.

Using JsonReader

g_autoptr(JsonParser) parser = json_parser_new ();

// str is defined elsewhere
json_parser_load_from_data (parser, str, -1, NULL);

g_autoptr(JsonReader) reader = json_reader_new (json_parser_get_root (parser));

json_reader_read_member (reader, "url");
  const char *url = json_reader_get_string_value (reader);
  json_reader_end_member (reader);

json_reader_read_member (reader, "size");
  json_reader_read_element (reader, 0);
    int width = json_reader_get_int_value (reader);
    json_reader_end_element (reader);
  json_reader_read_element (reader, 1);
    int height = json_reader_get_int_value (reader);
    json_reader_end_element (reader);
  json_reader_end_member (reader);

Error handling

In case of error, JsonReader will be set in an error state; all subsequent calls will simply be ignored until a function that resets the error state is called, e.g.:

// ask for the 7th element; if the element does not exist, the
// reader will be put in an error state
json_reader_read_element (reader, 6);

// in case of error, this will return NULL, otherwise it will
// return the value of the element
str = json_reader_get_string_value (value);

// this function resets the error state if any was set
json_reader_end_element (reader);

If you want to detect the error state as soon as possible, you can use json_reader_get_error():

// like the example above, but in this case we print out the
// error immediately
if (!json_reader_read_element (reader, 6))
  {
    const GError *error = json_reader_get_error (reader);
    g_print ("Unable to read the element: %s", error->message);
  }

Available since: 0.12

Hierarchy

hierarchy this JsonReader ancestor_0 GObject ancestor_0--this

Ancestors

Constructors

json_reader_new

Creates a new reader.

since: 0.12

Instance methods

json_reader_count_elements

Counts the elements of the current position, if the reader is positioned on an array.

since: 0.12

json_reader_count_members

Counts the members of the current position, if the reader is positioned on an object.

since: 0.12

json_reader_end_element

Moves the cursor back to the previous node after being positioned inside an array.

since: 0.12

json_reader_end_member

Moves the cursor back to the previous node after being positioned inside an object.

since: 0.12

json_reader_get_boolean_value

Retrieves the boolean value of the current position of the reader.

since: 0.12

json_reader_get_current_node

Retrieves the reader node at the current position.

since: 1.8

json_reader_get_double_value

Retrieves the floating point value of the current position of the reader.

since: 0.12

json_reader_get_error

Retrieves the error currently set on the reader.

since: 0.12

json_reader_get_int_value

Retrieves the integer value of the current position of the reader.

since: 0.12

json_reader_get_member_name

Retrieves the name of the current member.

since: 0.14

json_reader_get_null_value

Checks whether the value of the current position of the reader is null.

since: 0.12

json_reader_get_string_value

Retrieves the string value of the current position of the reader.

since: 0.12

json_reader_get_value

Retrieves the value node at the current position of the reader.

since: 0.12

json_reader_is_array

Checks whether the reader is currently on an array.

since: 0.12

json_reader_is_object

Checks whether the reader is currently on an object.

since: 0.12

json_reader_is_value

Checks whether the reader is currently on a value.

since: 0.12

json_reader_list_members

Retrieves a list of member names from the current position, if the reader is positioned on an object.

since: 0.14

json_reader_read_element

Advances the cursor of the reader to the element of the array or the member of the object at the given position.

since: 0.12

json_reader_read_member

Advances the cursor of the reader to the member_name of the object at the current position.

since: 0.12

json_reader_set_root

Sets the root node of the JSON tree to be read by reader.

since: 0.12

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

Json.Reader:root

The root of the JSON tree that the reader should read.

since: 0.12

Signals

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

unstable since: 2.0

Class structure

struct JsonReaderClass {
  void (* _json_padding0) (
void
  );
  void (* _json_padding1) (
void
  );
  void (* _json_padding2) (
void
  );
  void (* _json_padding3) (
void
  );
  void (* _json_padding4) (
void
  );
  
}
No description available.
Class members
_json_padding0: void (* _json_padding0) ( void )
No description available.
_json_padding1: void (* _json_padding1) ( void )
No description available.
_json_padding2: void (* _json_padding2) ( void )
No description available.
_json_padding3: void (* _json_padding3) ( void )
No description available.
_json_padding4: void (* _json_padding4) ( void )
No description available.