Function

JsonBoxedDeserializeFunc

since: 0.10

Declaration

gpointer
(* JsonBoxedDeserializeFunc) (
  JsonNode* node
)

Description [src]

Deserializes the contents of the passed JsonNode into a GBoxed, for instance:

static gpointer
my_point_deserialize (JsonNode *node)
{
  double x = 0.0, y = 0.0;

  if (JSON_NODE_HOLDS_ARRAY (node))
    {
      JsonArray *array = json_node_get_array (node);

      if (json_array_get_length (array) == 2)
        {
          x = json_array_get_double_element (array, 0);
          y = json_array_get_double_element (array, 1);
        }
    }
  else if (JSON_NODE_HOLDS_OBJECT (node))
    {
      JsonObject *obj = json_node_get_object (node);

      x = json_object_get_double_member_with_default (obj, "x", 0.0);
      y = json_object_get_double_member_with_default (obj, "y", 0.0);
    }

  // my_point_new() is defined elsewhere
  return my_point_new (x, y);
}

Available since: 0.10

Parameters

node

Type: JsonNode

A node tree representing a boxed data.

The data is owned by the caller of the function.

Return value

Type: gpointer

The newly created boxed structure.

The data is owned by the called function.
The return value can be NULL.