Interface

JsonSerializable

since: 1.0

Description [src]

interface Json.Serializable : GObject.Object

JsonSerializable is an interface for controlling the serialization and deserialization of GObject classes.

Implementing this interface allows controlling how the class is going to be serialized or deserialized by json_construct_gobject() and json_serialize_gobject(), respectively.

Available since: 1.0

Prerequisite

In order to implement Serializable, your type must inherit fromGObject.

Instance methods

json_serializable_default_deserialize_property

Calls the default implementation of the Json.SerializableIface.deserialize_property virtual function.

since: 0.10

json_serializable_default_serialize_property

Calls the default implementation of the Json.SerializableIface.serialize_property virtual function.

since: 0.10

json_serializable_deserialize_property

Asks a JsonSerializable implementation to deserialize the property contained inside property_node and place its value into value.

since: 1.0

json_serializable_find_property

Calls the Json.SerializableIface.find_property implementation on the JsonSerializable instance, which will return the property description for the given name.

since: 0.14

json_serializable_get_property

Calls the Json.SerializableIface.get_property implementation on the JsonSerializable instance, which will get the value of the given property.

since: 0.14

json_serializable_list_properties

Calls the Json.SerializableIface.list_properties implementation on the JsonSerializable instance, which will return the list of serializable properties.

since: 0.14

json_serializable_serialize_property

Asks a JsonSerializable implementation to serialize an object property into a JSON node.

since: 1.0

json_serializable_set_property

Calls the Json.SerializableIface.set_property implementation on the JsonSerializable instance, which will set the property with the given value.

since: 0.14

Interface structure

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 object instances with properties storing complex data types.

The json_gobject_from_data() and json_gobject_to_data() functions will check if the passed object type implements this interface, so it can also be used to override the default property serialization sequence.

Interface members
serialize_property
JsonNode* (* serialize_property) (
    JsonSerializable* serializable,
    const gchar* property_name,
    const GValue* value,
    GParamSpec* pspec
  )
 No description available.
deserialize_property
gboolean (* deserialize_property) (
    JsonSerializable* serializable,
    const gchar* property_name,
    GValue* value,
    GParamSpec* pspec,
    JsonNode* property_node
  )
 No description available.
find_property
GParamSpec* (* find_property) (
    JsonSerializable* serializable,
    const char* name
  )
 No description available.
list_properties
GParamSpec** (* list_properties) (
    JsonSerializable* serializable,
    guint* n_pspecs
  )
 No description available.
set_property
void (* set_property) (
    JsonSerializable* serializable,
    GParamSpec* pspec,
    const GValue* value
  )
 No description available.
get_property
void (* get_property) (
    JsonSerializable* serializable,
    GParamSpec* pspec,
    GValue* value
  )
 No description available.

Virtual methods

Json.Serializable.deserialize_property

Asks a JsonSerializable implementation to deserialize the property contained inside property_node and place its value into value.

since: 1.0

Json.Serializable.find_property

Calls the Json.SerializableIface.find_property implementation on the JsonSerializable instance, which will return the property description for the given name.

since: 0.14

Json.Serializable.get_property

Calls the Json.SerializableIface.get_property implementation on the JsonSerializable instance, which will get the value of the given property.

since: 0.14

Json.Serializable.list_properties
No description available.

since: 1.0

Json.Serializable.serialize_property

Asks a JsonSerializable implementation to serialize an object property into a JSON node.

since: 1.0

Json.Serializable.set_property

Calls the Json.SerializableIface.set_property implementation on the JsonSerializable instance, which will set the property with the given value.

since: 0.14