场景
许多软件(如 VSCode、Clash)允许用户导出一个“配置字符串”来分享设置。如果不使用 Base64,直接复制一段 JSON 既容易格式错乱,也太长了。
标准流程: JSON 对象 -> String -> Gzip 压缩 -> Base64 编码。
代码实现 (Python)
import json
import gzip
import base64
def export_config(config_dict):
# 1. 序列化为 JSON 字符串
json_str = json.dumps(config_dict)
# 2. 转换为 bytes
json_bytes = json_str.encode('utf-8')
# 3. Gzip 压缩
compressed = gzip.compress(json_bytes)
# 4. Base64 编码
return base64.b64encode(compressed).decode('utf-8')
def import_config(config_str):
# 1. Base64 解码
compressed = base64.b64decode(config_str)
# 2. Gzip 解压
json_bytes = gzip.decompress(compressed)
# 3. 解析 JSON
return json.loads(json_bytes.decode('utf-8'))
# 测试
my_config = {"theme": "dark", "plugins": ["a", "b", "c"], "version": 1}
exported = export_config(my_config)
print(f"导出字符串: {exported}")
# 结果类似: H4sIAAAAAAAC/6tWyk0tLk5MT1WyUipOzs8tKEotzi8tSk5R0lEqS8wpTgWylSpAlgIA6o4B/CcAAAA=
# 比原始 JSON 短得多,且不易损坏