祈灵工具箱

⚙️配置文件转换 - JSON、YAML、TOML、INI、.env、properties 互转

不同的工具和框架偏爱不同的配置格式:Rust 的 Cargo 和 Python 的 pyproject 用 TOML,Kubernetes 和 GitHub Actions 用 YAML,Spring Boot 既有 application.properties 也有 application.yml,PHP 和 MySQL 用 INI,Docker 和 Node 项目离不开 .env。这个工具让它们之间可以任意互转:粘贴内容或打开文件后会自动识别格式,选择目标格式即可得到结果。TOML 解析器按 TOML 1.0 规范手写,支持表、表数组 [[ ]]、内联表、点分键、多行基本字符串与字面量字符串、全部转义、带下划线的整数与十六进制/八进制/二进制、inf 与 nan、四种日期时间,并严格检查重复键、重复定义的表、越界整数和非法日期,错误会标出行号和列号。INI 支持节、; 与 # 注释、行内注释、引号值、key[] 数组和四种重复键策略;.env 支持 export 前缀、单双引号与反引号、转义、多行值、行尾注释以及 ${VAR} 与 ${VAR:-默认值} 变量展开;.properties 支持 = : 和空格分隔、\uXXXX 转义、续行、! 注释,并可把 a.b.c 与 list[0] 还原成嵌套对象。转成扁平格式时,嵌套结构会自动展开成点分键或下划线变量名。全部在浏览器本地完成,配置里的密钥不会离开你的电脑。

免费 · 无需注册 · 浏览器本地处理最后更新:

正在加载工具...

如何使用配置文件格式互转

  1. 1粘贴配置内容或打开 .toml、.yaml、.json、.ini、.env、.properties 文件,格式会自动识别
  2. 2选择目标格式,按需设置缩进、键排序以及重复键、变量展开、嵌套等选项
  3. 3复制或下载结果;出错时按提示的行号和列号修改

常见问题

转换会丢失信息吗?
数据本身不会丢,但各格式的能力不同:JSON 没有日期类型,TOML 的日期会转成字符串;TOML 没有 null,转换时会跳过 null 并给出提示;INI、.env、.properties 只有字符串,嵌套对象会展开成 a.b.c 或 A_B_C 这样的扁平键,注释在任何转换中都不会保留。勾选“识别数字和 true/false”后,扁平格式里的 8080、true 会转成数字和布尔值。
TOML 支持到什么程度?
按 TOML 1.0 规范实现:基本与字面量字符串(含多行和行尾反斜杠)、\u 与 \U 转义、带下划线的整数、0x/0o/0b 进制、浮点数与 inf/nan、带时区与本地的日期时间、表、表数组、内联表和点分键。它会拒绝规范不允许的写法,例如重复的键、同一个表定义两次、用点分键扩展已用 [表头] 定义的表、超出 64 位范围的整数和 2 月 30 日这样的日期。超出 JavaScript 安全整数范围的值会原样保留。
.env 里的 ${VAR} 会怎样处理?
开启“展开 ${VAR} 变量引用”后,双引号和无引号的值中的 ${VAR}、$VAR 会替换为文件中前面已经定义的变量,${VAR:-默认值} 在变量未定义或为空时使用默认值;单引号和反引号中的内容保持原样,\$ 可以输出字面的美元符号。工具不会读取你电脑上的系统环境变量。
Spring Boot 的 application.properties 怎么转成 application.yml?
粘贴 properties 内容,保持“a.b.c 键解析为嵌套对象”开启,目标选 YAML 即可,server.port=8080 会变成 server: port: 8080 的层级结构,list[0]、list[1] 会还原成列表,\u4E2D 这类转义会解码成中文。反过来把 YAML 转成 properties 时,可以选择是否把非 ASCII 字符转义成 \uXXXX。