def normalize_body(self, b):
        """return the body as a string, formatted to the appropriate content type

        :param b: mixed, the current raw body
        :returns: unicode string
        """
        if b is None: return ''

        if self.is_json():
            # TODO ???
            # I don't like this, if we have a content type but it isn't one
            # of the supported ones we were returning the exception, which threw
            # Jarid off, but now it just returns a string, which is not best either
            # my thought is we could have a body_type_subtype method that would 
            # make it possible to easily handle custom types
            # eg, "application/json" would become: self.body_application_json(b, is_error)
            b = json.dumps(b, cls=ResponseBody)

        else:
            # just return a string representation of body if no content type
            b = String(b, self.encoding)

        return b
return the body as a string, formatted to the appropriate content type

        :param b: mixed, the current raw body
        :returns: unicode string