在线 JSON/YAML 转换器:配置文件格式互转工具
什么是 JSON 和 YAML
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,使用大括号和中括号表示结构。
YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,使用缩进表示结构。
对比示例
JSON:
{
"server": {
"host": "0.0.0.0",
"port": 3000,
"features": ["auth", "logging"]
}
}
YAML:
server:
host: 0.0.0.0
port: 3000
features:
- auth
- logging
JSON vs YAML 对比
| 特性 | JSON | YAML |
|------|------|------|
| 可读性 | 中等 | 高(缩进结构) |
| 注释 | ❌ 不支持 | ✅ # 注释 |
| 文件大小 | 较大 | 较小 |
| 解析速度 | 快 | 较慢 |
| 数据类型 | 基本类型 | 丰富(日期、引用等) |
| 生态系统 | Web 标准 | DevOps 首选 |
| 安全性 | ✅ 无代码执行风险 | ⚠️ 有代码执行风险 |
为什么需要 JSON/YAML 转换
- Docker Compose:YAML 配置 ↔ JSON 程序化生成
- Kubernetes:YAML 清单 ↔ JSON API 请求
- CI/CD:GitHub Actions YAML ↔ JSON schema 验证
- 配置管理:不同工具使用不同格式
- API 文档:OpenAPI 规范支持 JSON 和 YAML
- 数据交换:不同系统间的数据格式转换
安全注意事项
⚠️ YAML 的安全风险:YAML 支持 !!js/function 等标签,可能导致代码执行。解析不可信的 YAML 数据时,务必禁用代码执行功能。
# 危险:YAML 可能执行代码
!!js/function |
function() { return process.env.SECRET; }
如何使用在线工具
使用 ToolVault 工具匣 的 JSON/YAML 转换器:
- 粘贴 JSON 或 YAML 数据
- 工具自动检测格式并转换
- 支持自定义缩进和格式选项
- 实时显示转换结果
- 语法错误检测
代码中的转换
JavaScript
const yaml = require('yaml');
const fs = require('fs');
// JSON → YAML
const jsonData = { server: { host: '0.0.0.0', port: 3000 } };
const yamlString = yaml.stringify(jsonData);
console.log(yamlString);
// YAML → JSON
const yamlString = 'server:\n host: 0.0.0.0\n port: 3000';
const jsonObj = yaml.parse(yamlString);
console.log(jsonObj);
Python
import json
import yaml
# JSON → YAML
data = {"server": {"host": "0.0.0.0", "port": 3000}}
yaml_str = yaml.dump(data, default_flow_style=False)
# YAML → JSON
yaml_str = "server:\n host: 0.0.0.0\n port: 3000"
data = yaml.safe_load(yaml_str) # 注意使用 safe_load
json_str = json.dumps(data, indent=2)
各工具的配置格式偏好
| 工具 | 首选格式 | 文件扩展名 |
|------|---------|-----------|
| Docker Compose | YAML | docker-compose.yml |
| Kubernetes | YAML | *.yaml |
| GitHub Actions | YAML | .github/workflows/*.yml |
| package.json | JSON | package.json |
| tsconfig.json | JSON | tsconfig.json |
| Nginx | 自定义 | nginx.conf |
| GitLab CI | YAML | .gitlab-ci.yml |
FAQ
JSON 和 YAML 哪个更好?
没有绝对的好坏。JSON 适合 Web API 和机器处理。YAML 适合人类编辑和配置文件。大多数现代工具两者都支持,需要互转时用 YAML to JSON converter 在浏览器里就能完成。
YAML 转 JSON 会丢失信息吗?
基本不会。但 YAML 的某些特性 JSON 不支持:注释、锚点(&/*)、多文档(---)。转换时这些内容会被忽略。其余内容用一个 JSON to YAML converter 就能在浏览器里同步两种格式。
如何选择缩进大小?
YAML 标准推荐 2 个空格缩进。Kubernetes 社区也使用 2 空格。Docker Compose 默认 2 空格。保持项目内一致即可。
本文由 ToolVault 工具匣 提供。更多开发者工具请访问 首页。
相关工具
相关文章
HTML 表格转 JSON 怎么保留行列结构?
把网页里的 HTML 表格转成 JSON,怎么保留表头、处理合并单元格、保持嵌套结构?逐步方法并附本站 HTML 表格转 JSON 工具。
Excel 转 JSON 后日期变成数字 / 中文乱码,怎么办?
把 Excel 转成 JSON 时日期变 44927 这种数字、中文乱码、空单元格丢失怎么办?讲清 Excel 日期序列号与编码坑,并附本站 Excel 转 JSON 工具。
表格数据互转完全指南:Excel、CSV、JSON、Markdown、HTML 一站式转换
Excel、CSV、JSON、Markdown、HTML 五种表格格式互转全解析:各格式特点、转换场景、在线工具实操与常见陷阱,12 个免费在线转换器一站搞定。