先说几个关键结论:在日常开发中,JSON 和 YAML 之间的格式转换几乎无处不在。如果你只是偶尔处理一两个文件,使用在线工具最为省心;如果手上有一批配置文件需要批量操作,Python 脚本的效率更高;要是你原本就装了 tmuxp,那借助命令行工具几乎零成本就能完成转换。下面详细拆解这三种方式,你可以根据实际需求灵活选用。

无论你是想把通义灵码项目里的配置来回转换,还是单纯想换个格式以便于阅读,最核心的需求都一样:稳定、快速、不丢失任何字段。那具体该怎么落地?接下来逐一讲解。
通过在线工具快速转换(适合单次、临时、无需安装)
打开浏览器,访问 https://www.php.cn/link/a24c0edd2c109ffea565f01636fe4247,页面左右分栏,左侧粘贴源格式,右侧就能实时看到目标格式——这应该是目前上手最快的方式。
操作步骤很简单:把 JSON 配置内容粘贴到左侧输入框,右侧立刻显示对应的 YAML;点击“Copy”按钮即可复制结果。整个转换过程在本地完成,无需注册,数据也不会上传到服务器。想反向转换?点击右上角的“YAML → JSON”切换按钮,照做即可。
利用 Python 脚本批量转换(适合多文件、CI/CD 集成、保留结构)
首先确保已安装 PyYAML 和标准库 json:
pip install pyyaml
新建一个名为 convert.py 的文件,将下面这段代码粘贴进去:
import sys, json, yaml
for p in sys.argv[1:]:
with open(p, 'r', encoding='utf-8') as f:
if p.endswith(('.yaml', '.yml')):
data = yaml.safe_load(f)
out = p.replace('.yaml', '.json').replace('.yml', '.json')
else:
data = json.load(f)
out = p.replace('.json', '.yaml')
with open(out, 'w', encoding='utf-8') as f:
if out.endswith('.yaml'):
yaml.dump(data, f, allow_unicode=True, indent=2, sort_keys=False)
else:
json.dump(data, f, ensure_ascii=False, indent=2)
print('✅', out)
然后执行命令:python convert.py config.json config.yaml,它会自动生成对应的格式文件。
这里有个注意事项:YAML 转 JSON 时如果遇到锚点或标签,safe_load 会直接跳过——如果需要完整支持,可以改用 yaml.load(f, Loader=yaml.CLoader)。但必须确保源文件可信,否则存在代码执行风险。
通过 tmuxp 命令行快速转换(适合已有 tmuxp 环境的开发者)
如果你已经在使用 tmuxp,那么转换只需要一行命令:
单个文件:
tmuxp convert config.json → 生成 config.yaml
tmuxp convert config.yaml → 生成 config.json
加上 -y 参数可以跳过确认提示,在脚本中使用更顺畅:tmuxp convert -y config.json。
批量处理当前目录下所有 JSON 文件,一行搞定:
for f in *.json; do tmuxp convert -y "$f"; done
实际操作几乎不需要思考,直接拖入文件即可。唯一需要注意的是转换后检查缩进是否统一为 2 个空格——YAML 对空格极其敏感,制表符或 4 个空格都可能导致解析失败。
