### Function

# Json gvariant_deserialize

#### Declaration [src]

    GVariant*
    json_gvariant_deserialize (
      JsonNode* json_node,
      const gchar* signature,
      GError** error
    )

#### Description [src]

Converts a JSON data structure to a `GVariant`.

If `signature` is not `NULL`, it will be used to resolve ambiguous data types.

If no error occurs, the resulting `GVariant` is guaranteed to conform to `signature`.

If `signature` is not `NULL` but does not represent a valid `GVariant` type string, `NULL` is returned and the `error` is set to `G_IO_ERROR_INVALID_ARGUMENT`.

If a `signature` is provided but the JSON structure cannot be mapped to it, `NULL` is returned and the `error` is set to `G_IO_ERROR_INVALID_DATA`.

If `signature` is `NULL`, the conversion is done based strictly on the types in the JSON nodes.

The returned variant has a floating reference that will need to be sunk by the caller code.

Available since: | 0.14

#### Parameters

`json_node` | `JsonNode`
| The node to convert.
| The data is owned by the caller of the function.
`signature` | `const gchar*`
| A valid `GVariant` type string.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `GVariant`
| A newly created `GVariant`
| The data is owned by the called function.
| The return value can be `NULL`.