summaryrefslogtreecommitdiff
path: root/json-glib/json-gobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'json-glib/json-gobject.c')
-rw-r--r--json-glib/json-gobject.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c
index 1def054..a8b8843 100644
--- a/json-glib/json-gobject.c
+++ b/json-glib/json-gobject.c
@@ -266,7 +266,19 @@ json_deserialize_pspec (GValue *value,
switch (JSON_NODE_TYPE (node))
{
case JSON_NODE_OBJECT:
- return FALSE;
+ if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_OBJECT))
+ {
+ GObject *object;
+
+ object = json_gobject_new (G_VALUE_TYPE (value), json_node_get_object (node));
+ if (object != NULL)
+ g_value_take_object (value, object);
+ else
+ g_value_set_object (value, NULL);
+
+ retval = TRUE;
+ }
+ break;
case JSON_NODE_ARRAY:
if (G_VALUE_HOLDS (value, G_TYPE_STRV))