""" JSON 工具模块 统一使用高性能的 orjson 库进行 JSON 序列化和反序列化。 如果 orjson 不可用,则回退到标准库 json。 """ from typing import Any, Union import json # 在模块加载时检查 orjson 是否可用 try: import orjson _orjson_available = True except ImportError: _orjson_available = False def dumps(obj: Any) -> str: """ 将对象序列化为 JSON 字符串。 """ if _orjson_available: # orjson.dumps 返回 bytes,需要 decode return orjson.dumps(obj).decode("utf-8") else: return json.dumps(obj, ensure_ascii=False) def loads(json_str: Union[str, bytes]) -> Any: """ 将 JSON 字符串反序列化为对象。 """ if _orjson_available: return orjson.loads(json_str) else: return json.loads(json_str)