JsonGenerator

JsonGenerator — Generates JSON data streams

Synopsis

                    JsonGenerator;
                    JsonGeneratorClass;
JsonGenerator*      json_generator_new                  (void);
gboolean            json_generator_to_file              (JsonGenerator *generator,
                                                         const gchar *filename,
                                                         GError **error);
gchar*              json_generator_to_data              (JsonGenerator *generator,
                                                         gsize *length);
void                json_generator_set_root             (JsonGenerator *generator,
                                                         JsonNode *node);

Object Hierarchy

  GObject
   +----JsonGenerator

Properties

  "indent"                   guint                 : Read / Write
  "indent-char"              guint                 : Read / Write
  "pretty"                   gboolean              : Read / Write
  "root"                     JsonNode*             : Read / Write

Description

JsonGenerator provides an object for generating a JSON data stream and put it into a buffer or a file.

Details

JsonGenerator

typedef struct _JsonGenerator JsonGenerator;

JSON data streams generator. The contents of the JsonGenerator structure are private and should only be accessed via the provided API.


JsonGeneratorClass

typedef struct {
} JsonGeneratorClass;

JsonGenerator class


json_generator_new ()

JsonGenerator*      json_generator_new                  (void);

Creates a new JsonGenerator. You can use this object to generate a JSON data stream starting from a data object model composed by JsonNodes.

Returns :

the newly created JsonGenerator instance

json_generator_to_file ()

gboolean            json_generator_to_file              (JsonGenerator *generator,
                                                         const gchar *filename,
                                                         GError **error);

Creates a JSON data stream and puts it inside filename, overwriting the current file contents. This operation is atomic.

generator :

a JsonGenerator

filename :

path to the target file

error :

return location for a GError, or NULL

Returns :

TRUE if saving was successful.

json_generator_to_data ()

gchar*              json_generator_to_data              (JsonGenerator *generator,
                                                         gsize *length);

Generates a JSON data stream from generator and returns it as a buffer.

generator :

a JsonGenerator

length :

return location for the length of the returned buffer, or NULL

Returns :

a newly allocated buffer holding a JSON data stream. Use g_free() to free the allocated resources.

json_generator_set_root ()

void                json_generator_set_root             (JsonGenerator *generator,
                                                         JsonNode *node);

Sets node as the root of the JSON data stream to be serialized by the JsonGenerator.

Note: the node is copied by the generator object, so it can be safely freed after calling this function.

generator :

a JsonGenerator

node :

a JsonNode

Property Details

The "indent" property

  "indent"                   guint                 : Read / Write

Number of spaces to be used to indent when pretty printing.

Default value: 2


The "indent-char" property

  "indent-char"              guint                 : Read / Write

The character that should be used when indenting in pretty print.

Default value: ' '

Since 0.6


The "pretty" property

  "pretty"                   gboolean              : Read / Write

Whether the output should be "pretty-printed", with indentation and newlines. The indentation level can be controlled by using the JsonGenerator:indent property

Default value: FALSE


The "root" property

  "root"                     JsonNode*             : Read / Write

The root JsonNode to be used when constructing a JSON data stream.

Since 0.4