|  |  |  | JSON-GLib Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
| Serializable InterfaceSerializable Interface — Interface for serialize and deserialize special GObjects | 
struct JsonSerializableIface; JsonNode * json_serializable_serialize_property (JsonSerializable *serializable,const gchar *property_name,const GValue *value,GParamSpec *pspec); gboolean json_serializable_deserialize_property (JsonSerializable *serializable,const gchar *property_name,GValue *value,GParamSpec *pspec,JsonNode *property_node); GParamSpec * json_serializable_find_property (JsonSerializable *serializable,const char *name); void json_serializable_get_property (JsonSerializable *serializable,GParamSpec *pspec,GValue *value); GParamSpec ** json_serializable_list_properties (JsonSerializable *serializable,guint *n_pspecs); void json_serializable_set_property (JsonSerializable *serializable,GParamSpec *pspec,const GValue *value); JsonNode * json_serializable_default_serialize_property (JsonSerializable *serializable,const gchar *property_name,const GValue *value,GParamSpec *pspec); gboolean json_serializable_default_deserialize_property (JsonSerializable *serializable,const gchar *property_name,GValue *value,GParamSpec *pspec,JsonNode *property_node);
JsonSerializable is an interface for GObject classes that
allows controlling how the class is going to be serialized
or deserialized by json_construct_gobject() and
json_serialize_gobject() respectively.
struct JsonSerializableIface {
  JsonNode *(* serialize_property)   (JsonSerializable *serializable,
                                      const gchar      *property_name,
                                      const GValue     *value,
                                      GParamSpec       *pspec);
  gboolean  (* deserialize_property) (JsonSerializable *serializable,
                                      const gchar      *property_name,
                                      GValue           *value,
                                      GParamSpec       *pspec,
                                      JsonNode         *property_node);
  GParamSpec * (* find_property)       (JsonSerializable *serializable,
                                        const char       *name);
  GParamSpec **(* list_properties)     (JsonSerializable *serializable,
                                        guint            *n_pspecs);
  void         (* set_property)        (JsonSerializable *serializable,
                                        GParamSpec       *pspec,
                                        const GValue     *value);
  void         (* get_property)        (JsonSerializable *serializable,
                                        GParamSpec       *pspec,
                                        GValue           *value);
};
Interface that allows serializing and deserializing GObjects
with properties storing complex data types. The json_serialize_gobject()
function will check if the passed GObject implements this interface,
so it can also be used to override the default property serialization
sequence.
| virtual function for serializing a GObject property into a JsonNode | |
| virtual function for deserializing a JsonNode into a GObject property | |
| virtual function for finding a property definition using its name | |
| virtual function for listing the installed property definitions | |
| virtual function for setting a property | |
| virtual function for getting a property | 
JsonNode * json_serializable_serialize_property (JsonSerializable *serializable,const gchar *property_name,const GValue *value,GParamSpec *pspec);
Asks a JsonSerializable implementation to serialize a GObject property into a JsonNode object.
| 
 | a JsonSerializable object | 
| 
 | the name of the property | 
| 
 | the value of the property | 
| 
 | a GParamSpec | 
| Returns : | a JsonNode containing the serialized property | 
gboolean json_serializable_deserialize_property (JsonSerializable *serializable,const gchar *property_name,GValue *value,GParamSpec *pspec,JsonNode *property_node);
Asks a JsonSerializable implementation to deserialize the
property contained inside property_node into value.
| 
 | a JsonSerializable | 
| 
 | the name of the property | 
| 
 | a pointer to an uninitialized GValue. [out] | 
| 
 | a GParamSpec | 
| 
 | a JsonNode containing the serialized property | 
| Returns : | TRUEif the property was successfully deserialized. | 
GParamSpec * json_serializable_find_property (JsonSerializable *serializable,const char *name);
FIXME
| 
 | a JsonSerializable | 
| 
 | the name of the property | 
| Returns : | the GParamSpec for the property
or NULLif no property was found. [transfer none] | 
Since 0.14
void json_serializable_get_property (JsonSerializable *serializable,GParamSpec *pspec,GValue *value);
GParamSpec ** json_serializable_list_properties (JsonSerializable *serializable,guint *n_pspecs);
FIXME
| 
 | a JsonSerializable | 
| 
 | return location for the length of the array of GParamSpec returned by the function. [out] | 
| Returns : | an array
of GParamSpec. Use g_free()to free the array when done. [array length=n_pspecs][transfer container] | 
Since 0.14
void json_serializable_set_property (JsonSerializable *serializable,GParamSpec *pspec,const GValue *value);
JsonNode * json_serializable_default_serialize_property (JsonSerializable *serializable,const gchar *property_name,const GValue *value,GParamSpec *pspec);
Calls the default implementation of the JsonSerializable
serialize_property() virtual function
This function can be used inside a custom implementation
of the serialize_property() virtual function in lieu of:
| 1 2 3 4 5 6 7 | JsonSerializable *iface; JsonNode *node; iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE); node = iface->serialize_property (serializable, property_name, value, pspec); | 
| 
 | a JsonSerializable object | 
| 
 | the name of the property | 
| 
 | the value of the property | 
| 
 | a GParamSpec | 
| Returns : | a JsonNode containing the serialized property. [transfer full] | 
Since 0.10
gboolean json_serializable_default_deserialize_property (JsonSerializable *serializable,const gchar *property_name,GValue *value,GParamSpec *pspec,JsonNode *property_node);
Calls the default implementation of the JsonSerializable
deserialize_property() virtual function
This function can be used inside a custom implementation
of the deserialize_property() virtual function in lieu of:
| 1 2 3 4 5 6 7 8 | JsonSerializable *iface; gboolean res; iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE); res = iface->deserialize_property (serializable, property_name, value, pspec, property_node); | 
| 
 | a JsonSerializable | 
| 
 | the name of the property | 
| 
 | a pointer to an uninitialized GValue | 
| 
 | a GParamSpec | 
| 
 | a JsonNode containing the serialized property | 
| Returns : | TRUEif the property was successfully deserialized. | 
Since 0.10