def METHOD_NAME(self, data):
    # don't serialize strings
    if isinstance(data, string_types):
        return data
    try:
        """
        `json.dumps()` behaviors:
        ensure_ascii: If true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. 
                      If false, these characters will be output as-is.
        separators: an (item_separator, key_separator) tuple, specifying the separators in the output.
        """
        # return json.dumps(data, default=self.default, ensure_ascii=False, separators=(",", ":"))
        """
        `orjson.dumps()` will escape all incoming non-ASCII characters and output the encoded byte-strings.
        We decode the output byte-strings into string, and as a result, those escaped characters are un-escaped.
        In Python 3, the default encoding is "utf-8" (see https://docs.python.org/3/library/stdtypes.html#bytes.decode).
        `orjson.dumps()` will output compact JSON representation, effectively the same behavior with json.dumps(separators=(",", ":"))
        """
        return orjson.METHOD_NAME(data, default=self.default).decode()
    except (ValueError, TypeError) as e:
        raise SerializationError(data, e)