JSON-GLib provides API for serializing and deserializing
to and from JSON data streams.
GObject classes can be (de)serialized into JSON objects, if the
properties have compatible types with the native JSON types (integers,
booleans, strings, string vectors). If the class to be (de)serialized has
complex data types for properties (like boxed types or other objects) then
the class should implement the provided
and its virtual functions.