.env ⇄ JSON
解析 .env 文本转 JSON:引号、注释、export 前缀与行内 # 全兼容;JSON 反向生成 .env,键名合法性即时校验。
>_ 使用指南 · GUIDE
把 .env 文件内容粘贴到左侧面板,右侧立即得到保序的 JSON 对象;反向把 JSON 粘到右侧,左侧生成标准 .env 格式。整个过程在浏览器本地完成,含密钥的环境变量不会上传到任何服务器。
解析器对真实世界的 .env 文件做了完整兼容:整行 # 注释、无引号值里的行内 # 注释、export FOO=bar 的 export 前缀、双引号内的 \n \t 转义展开、单引号值的逐字原样(POSIX 语义)——这些差异正是各家 dotenv 库行为不一致的重灾区,这里全部按规则明示处理。
典型步骤:
- 粘贴 .env:左侧输入,右侧 JSON 实时生成,无需点按钮
- 检查警告:键名不合法的行(如含连字符)会逐行列出并跳过,不会静默吞掉
- 反向生成:右侧粘贴扁平 JSON,左侧输出
.env,含空白或#的值自动加双引号并转义 - 复制产物:用面板右上角复制按钮取走结果,直接落库或贴回项目
>_ 常见问题 · FAQ
Q1 · 为什么我的键名被跳过了?
.env 的键必须匹配 [A-Za-z_][A-Za-z0-9_]*:以字母或下划线开头,后面只能是字母、数字、下划线。DB-HOST 这类带连字符的键不是合法的环境变量名(shell 无法直接导出),工具会逐行列出并跳过,你可以先改键名再转。
Q2 · 双引号和单引号里的值有什么区别?
遵循 POSIX shell 语义:双引号内的 \n \t \\ \" 会被展开成真实的换行、制表符、反斜杠和引号;单引号内的一切字符逐字原样,\n 就是反斜杠加 n 两个字符。把 shell 脚本里的配置搬进 .env 时,这个差异是多行密钥、正则表达式出错的头号原因。
Q3 · 行内 # 注释是怎么处理的?
无引号值中出现的 #(井号前有空格)会被视为注释起点并剥除,如 DEBUG=true # 开发开关 只保留 true。但双引号或单引号内的 # 属于值本身,不会被剥除——这与主流 dotenv 实现一致。
Q4 · JSON 转 .env 支持嵌套对象吗?
不支持,这是有意的:.env 是扁平的字符串键值对,嵌套对象没有无歧义的映射规则。工具仅接受值为字符串、数字、布尔或 null 的扁平对象;嵌套结构会作为非法键列出提醒,而不是静默展平或报错中断。
Q5 · 粘贴的 API 密钥安全吗?
安全。解析与生成全部在你的浏览器内完成,页面不发任何网络请求,输入既不上传也不落库。这也是它适合处理 .env 的原因——这类文件里通常全是真实密钥。