![]() |
![]() |
![]() |
JSON-GLib Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
#include <json-glib/json-glib.h> struct JsonGenerator; struct JsonGeneratorClass; JsonGenerator * json_generator_new (void
); void json_generator_set_root (JsonGenerator *generator
,JsonNode *node
); JsonNode * json_generator_get_root (JsonGenerator *generator
); void json_generator_set_pretty (JsonGenerator *generator
,gboolean is_pretty
); gboolean json_generator_get_pretty (JsonGenerator *generator
); void json_generator_set_indent (JsonGenerator *generator
,guint indent_level
); guint json_generator_get_indent (JsonGenerator *generator
); void json_generator_set_indent_char (JsonGenerator *generator
,gunichar indent_char
); gunichar json_generator_get_indent_char (JsonGenerator *generator
); gboolean json_generator_to_file (JsonGenerator *generator
,const gchar *filename
,GError **error
); gchar * json_generator_to_data (JsonGenerator *generator
,gsize *length
); GString * json_generator_to_gstring (JsonGenerator *generator
,GString *string
); gboolean json_generator_to_stream (JsonGenerator *generator
,GOutputStream *stream
,GCancellable *cancellable
,GError **error
);
"indent" guint : Read / Write "indent-char" guint : Read / Write "pretty" gboolean : Read / Write "root" JsonNode* : Read / Write
JsonGenerator provides an object for generating a JSON data stream and put it into a buffer or a file.
struct JsonGenerator;
JSON data streams generator. The contents of the JsonGenerator structure are private and should only be accessed via the provided API.
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 |
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.
|
a JsonGenerator |
|
a JsonNode |
JsonNode * json_generator_get_root (JsonGenerator *generator
);
Retrieves a pointer to the root JsonNode set using
json_generator_set_root()
.
|
a JsonGenerator |
Returns : |
a JsonNode, or NULL . The returned
node is owned by the JsonGenerator and it should not be freed. [nullable][transfer none]
|
Since 0.14
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.
|
a JsonGenerator |
|
whether the generated string should be pretty printed |
Since 0.14
gboolean json_generator_get_pretty (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_pretty()
.
|
a JsonGenerator |
Returns : |
TRUE if the generated JSON should be pretty-printed, and
FALSE otherwise |
Since 0.14
void json_generator_set_indent (JsonGenerator *generator
,guint indent_level
);
Sets the number of repetitions for each indentation level.
|
a JsonGenerator |
|
the number of repetitions of the indentation character that should be applied when pretty printing |
Since 0.14
guint json_generator_get_indent (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_indent()
.
|
a JsonGenerator |
Returns : |
the number of repetitions per indentation level |
Since 0.14
void json_generator_set_indent_char (JsonGenerator *generator
,gunichar indent_char
);
Sets the character to be used when indenting
|
a JsonGenerator |
|
a Unicode character to be used when indenting |
Since 0.14
gunichar json_generator_get_indent_char (JsonGenerator *generator
);
Retrieves the value set using json_generator_set_indent_char()
.
|
a JsonGenerator |
Returns : |
the character to be used when indenting |
Since 0.14
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.
|
a JsonGenerator |
|
path to the target file |
|
return location for a GError, or NULL
|
Returns : |
TRUE if saving was successful. |
gchar * json_generator_to_data (JsonGenerator *generator
,gsize *length
);
Generates a JSON data stream from generator
and returns it as a
buffer.
|
a JsonGenerator |
|
return location for the length of the returned
buffer, or NULL . [out]
|
Returns : |
a newly allocated buffer holding a JSON data stream.
Use g_free() to free the allocated resources. |
GString * json_generator_to_gstring (JsonGenerator *generator
,GString *string
);
Generates a JSON data stream from generator
and appends it to string
.
|
a JsonGenerator |
|
a GString |
Returns : |
a GString holding a JSON data stream.
Use g_string_free() to free the allocated resources. [transfer none]
|
Since 1.4
gboolean json_generator_to_stream (JsonGenerator *generator
,GOutputStream *stream
,GCancellable *cancellable
,GError **error
);
Outputs JSON data and streams it (synchronously) to stream
.
|
a JsonGenerator |
|
a GOutputStream |
|
a GCancellable, or NULL . [allow-none]
|
|
return location for a GError, or NULL
|
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
"indent"
property "indent" guint : Read / Write
Number of spaces to be used to indent when pretty printing.
Default value: 2
"indent-char"
property "indent-char" guint : Read / Write
The character that should be used when indenting in pretty print.
Default value: ' '
Since 0.6
"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