from typing import Dict
import json


def sorted_json_string(jsonable_dict: Dict) -> str:
    """Produce a string that is unique to a json's contents

    Parameters
    ----------
    jsonable_dict :
        A dict representation of a JSON to create a sorted string out of

    Returns
    -------
    :
        The sorted string representation of the JSON
    """
    if isinstance(jsonable_dict, str):
        return jsonable_dict
    elif isinstance(jsonable_dict, (tuple, list)):
        return "[%s]" % (",".join(sorted(sorted_json_string(s) for s in jsonable_dict)))
    elif isinstance(jsonable_dict, dict):
        return "{%s}" % (",".join(sorted(k + sorted_json_string(v) for k, v in jsonable_dict.items())))
    elif isinstance(jsonable_dict, (int, float)):
        return str(jsonable_dict)
    elif jsonable_dict is None:
        return json.dumps(jsonable_dict)
    else:
        raise TypeError("Invalid type: %s" % type(jsonable_dict))