# Serializers

## restless.serializers

class `restless.serializers.``JSONSerializer`
  `deserialize`(body)

    The low-level deserialization.

    Underpins `deserialize`, `deserialize_list` & `deserialize_detail`.

    Has no built-in smarts, simply loads the JSON.

    Parameters: | body (string) – The body of the current request
    Returns: | The deserialized data
    Return type: | `list` or `dict`

  `serialize`(data)

    The low-level serialization.

    Underpins `serialize`, `serialize_list` & `serialize_detail`.

    Has no built-in smarts, simply dumps the JSON.

    Parameters: | data (string) – The body for the response
    Returns: | A serialized version of the data
    Return type: | string

class `restless.serializers.``Serializer`

  A base serialization class.

  Defines the protocol expected of a serializer, but only raises `NotImplementedError`.

  Either subclass this or provide an object with the same `deserialize/serialize` methods on it.

  `deserialize`(body)

    Handles deserializing data coming from the user.

    Should return a plain Python data type (such as a dict or list) containing the data.

    Parameters: | body (string) – The body of the current request
    Returns: | The deserialized data
    Return type: | `list` or `dict`

  `serialize`(data)

    Handles serializing data being sent to the user.

    Should return a plain Python string containing the serialized data in the appropriate format.

    Parameters: | data (string) – The body for the response
    Returns: | A serialized version of the data
    Return type: | string