def METHOD_NAME(
    json_diff: Union[dict, list, int, str, None],
    src: str = "",
    tgt: str = "",
    suppress_bs: bool = True,
    value_limit: int = None,
):
    def sup(x):
        if not isinstance(x, str):
            return x
        if value_limit is not None and len(x) > value_limit:
            x = x[:value_limit] + "..."
        return x
    def suppress(x, y):
        x, y = jdump(x, only_objs=True), jdump(y, only_objs=True)
        if None not in (x, y):
            return x, y
        return sup(x), sup(y)
    def pd(jd):
        if isinstance(jd, list):
            if is_diff_array(jd):
                x, y = jd
                if suppress_bs:
                    x, y = suppress(x, y)
                return [{tgt: x}, {src: y}]
            return [pd(x) for x in jd]
        if isinstance(jd, dict):
            return {k: pd(v) for k, v in jd.items()}
        return jd
    return sort_json(pd(json_diff))