Top |
Functions
Description
JsonGenerator provides an object for generating a JSON data stream and put it into a buffer or a file.
Functions
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.
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.
The passed node
is copied by the generator object, so it can be
safely freed after calling this function.
json_generator_get_root ()
JsonNode *
json_generator_get_root (JsonGenerator *generator
);
Retrieves a pointer to the root JsonNode set using
json_generator_set_root()
.
Returns
a JsonNode, or NULL
. The returned node
is owned by the JsonGenerator and it should not be freed.
[transfer none]
Since: 0.14
json_generator_set_pretty ()
void json_generator_set_pretty (JsonGenerator *generator
,gboolean is_pretty
);
Sets whether the generated JSON should be pretty printed, using the indentation character specified in the “indent-char” property and the spacing specified in “indent” property.
Since: 0.14
json_generator_get_pretty ()
gboolean
json_generator_get_pretty (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_pretty()
.
Since: 0.14
json_generator_set_indent ()
void json_generator_set_indent (JsonGenerator *generator
,guint indent_level
);
Sets the number of repetitions for each indentation level.
Parameters
generator |
||
indent_level |
the number of repetitions of the indentation character that should be applied when pretty printing |
Since: 0.14
json_generator_get_indent ()
guint
json_generator_get_indent (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_indent()
.
Since: 0.14
json_generator_set_indent_char ()
void json_generator_set_indent_char (JsonGenerator *generator
,gunichar indent_char
);
Sets the character to be used when indenting
Since: 0.14
json_generator_get_indent_char ()
gunichar
json_generator_get_indent_char (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_indent_char()
.
Since: 0.14
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.
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.
Returns
a newly allocated buffer holding a JSON data stream.
Use g_free()
to free the allocated resources.
json_generator_to_stream ()
gboolean json_generator_to_stream (JsonGenerator *generator
,GOutputStream *stream
,GCancellable *cancellable
,GError **error
);
Outputs JSON data and streams it (synchronously) to stream
.
Returns
TRUE
if the write operation was successful, and FALSE
on failure. In case of error, the GError will be filled accordingly
Since: 0.12
Types and Values
struct JsonGenerator
struct JsonGenerator;
JSON data streams generator. The contents of the JsonGenerator structure are private and should only be accessed via the provided API.
Property Details
The “indent”
property
“indent” guint
Number of spaces to be used to indent when pretty printing.
Flags: Read / Write
Default value: 2
The “indent-char”
property
“indent-char” guint
The character that should be used when indenting in pretty print.
Flags: Read / Write
Default value: ' '
Since: 0.6
The “pretty”
property
“pretty” gboolean
Whether the output should be "pretty-printed", with indentation and newlines. The indentation level can be controlled by using the JsonGenerator:indent property
Flags: Read / Write
Default value: FALSE