JSON 转 .env 转换器
粘贴 JSON 对象,立即生成 .env 文件。从配置本地生成 dotenv — 你的键和密钥绝不离开浏览器。100% 本地、零上传。
选项 · 保留键 · 无 export
什么是 .env 文件?
一个 .env 文件(dotenv 文件)是一组纯文本的 KEY=VALUE 对,在源代码之外保存环境配置和密钥。它是 Node.js、Vite、Next.js、Python、Ruby 和 Docker Compose 的事实标准 — dotenv 库会加载该文件并把每一对注入进程环境。由于它通常存储数据库密码、API 密钥和访问令牌,.env 文件被当作敏感文件对待并被排除在版本控制之外。
从 JSON 生成 .env 文件是常见的解析配置任务的反向操作:你已经有了作为 JSON 对象的配置 — 来自一个 API 响应、一份配置导出、一次密钥管理器转储,或一个以编程方式构建设置的脚本 — 而你需要一个 .env 文件放入项目或交给容器。这个转换器遍历你 JSON 对象的顶层键,为每个属性写出一个正确加引号的 KEY=VALUE 行。
这个工具围绕几个深思熟虑的决策构建:
**1. 往返安全的加引号。** 数字和布尔值裸写,null 变成空值,任何包含空格、换行、# 或引号的字符串都会被自动加双引号并转义。结果能干净地经过 dotenv 以及配套的 .env 转 JSON 转换器 解析回来,使一个值在往返中绝不改变含义。
**2. 对嵌套的诚实处理。** 一个 .env 文件按定义是扁平的。工具不会悄悄丢弃嵌套数据,而是把每个嵌套对象或数组序列化为一个紧凑的 JSON 字符串,并警告你哪些键被扁平化,使你能判断 .env 是否真的是合适的目标。
**3. 可选的键规范化。** 键默认按原样保留以避免丢失信息。打开「规范化键」把 camelCase 或 kebab-case 转换为环境变量使用的 UPPER_SNAKE_CASE 约定,并对任何仍无法构成合法名字的键给出警告。
**4. 100% 基于浏览器的隐私。** 你粘贴的 JSON — 通常正是你即将写入 .env 的凭据 — 绝不离开浏览器。没有上传、没有服务器往返、没有日志记录;在 DevTools 网络标签页中验证零网络请求。
转换之前,你可以用 JSON 格式化 校验或美化 JSON,或用 JSON 转义 对一个 JSON 字符串反转义。如果你的配置用结构表达更好,JSON 转 YAML 能保留扁平 .env 无法保留的嵌套。
// Generate .env lines from a JSON object in Node.js
const config = {
DATABASE_URL: 'postgres://user:pass@localhost:5432/mydb',
PORT: 8080,
DEBUG: true,
NOTE: 'value with spaces',
};
const needsQuotes = (s) => /[\s#"'\n]/.test(s);
const env = Object.entries(config)
.map(([key, value]) => {
if (typeof value === 'string') {
return needsQuotes(value)
? `${key}=${JSON.stringify(value)}`
: `${key}=${value}`;
}
return `${key}=${value ?? ''}`; // null -> empty value
})
.join('\n');
console.log(env);
// DATABASE_URL=postgres://user:pass@localhost:5432/mydb
// PORT=8080
// DEBUG=true
// NOTE="value with spaces" 核心功能
往返安全的加引号
数字和布尔值裸写,null 变成空值,含空格、换行、# 或引号的字符串会被自动加双引号并转义,使它们能干净地经过 dotenv 解析回来。
诚实的嵌套处理
嵌套对象和数组无法存在于扁平的 .env 中,所以每个都会被序列化为一个紧凑的 JSON 字符串,并有一条警告精确列出哪些键被扁平化 — 绝不是无声更改。
可选的键规范化
默认按原样保留键 — 对任何不合法的 env 名字给出警告 — 或打开「规范化键」把 camelCase 和 kebab-case 转换为环境变量使用的 UPPER_SNAKE_CASE 约定。
可选的 export 前缀
在每行前加上 export,使生成的 .env 文件能在 shell 中直接被 source,匹配 CI 和部署脚本的风格。
实时转换
.env 输出会随你输入或粘贴 JSON 而即时更新。大输入(超过 200KB)会切换到手动模式,带一个「转换」按钮以保持浏览器响应流畅。
100% 基于浏览器的隐私
所有转换都在你的浏览器中本地运行。你粘贴的 JSON — API 密钥、凭据、令牌 — 绝不会被上传、记录或存储在任何服务器上。
示例
配置对象转 .env
{
"DATABASE_URL": "postgres://user:pass@localhost:5432/mydb",
"PORT": 8080,
"DEBUG": true,
"LOG_LEVEL": "info",
"API_KEY": "sk_live_abc123"
} DATABASE_URL=postgres://user:pass@localhost:5432/mydb PORT=8080 DEBUG=true LOG_LEVEL=info API_KEY=sk_live_abc123
一个扁平的 JSON 配置对象变成一个干净的 .env 文件。数字和布尔值不加引号写出;普通字符串原样写出。可直接保存为 .env 并用 dotenv 加载。
需要加引号的值
{
"GREETING": "Hello, World",
"MOTD": "line one\nline two",
"COLOR": "#ff0000",
"NOTE": "value with # hash",
"EMPTY": null
} GREETING="Hello, World" MOTD="line one\nline two" COLOR="#ff0000" NOTE="value with # hash" EMPTY=
包含空格、换行、# 或引号的字符串会被自动用双引号包裹并转义,使它们能完整经过 dotenv 的往返。null 值变成一个空赋值(KEY=)。
把键规范化为 UPPER_SNAKE_CASE
{
"databaseUrl": "postgres://localhost/mydb",
"poolSize": 10,
"enable-signup": true
} DATABASE_URL=postgres://localhost/mydb POOL_SIZE=10 ENABLE_SIGNUP=true
打开「规范化键」选项后,camelCase 和 kebab-case 的键会被转换为环境变量使用的 UPPER_SNAKE_CASE 约定。关闭时,原始键会被原样保留。
嵌套对象被扁平化为 JSON 字符串
{
"APP_NAME": "my-app",
"FEATURES": { "signup": true, "beta": false },
"REGIONS": ["us-east-1", "eu-west-1"]
} APP_NAME=my-app
FEATURES="{\"signup\":true,\"beta\":false}"
REGIONS="[\"us-east-1\",\"eu-west-1\"]" .env 文件是扁平的,所以嵌套对象和数组无法原生表示。工具会把每个嵌套值序列化为一个紧凑的 JSON 字符串并加双引号,并显示一条警告列出哪些键被扁平化,使该行为绝不无声进行。
使用方法
- 1
粘贴你的 JSON 对象
在上方输入框中输入或粘贴一个扁平的 JSON 对象。你也可以点击「加载示例」来试用配置对象、需要加引号的值或嵌套对象。
- 2
查看实时 .env 输出
.env 文件会立即出现在输出面板中。切换「规范化键」以获得 UPPER_SNAKE_CASE 名字,或在文件将被 shell source 时切换「添加 export 前缀」。
- 3
复制或下载
点击「复制」把 .env 复制到剪贴板,或点击「下载」保存为 .env 文件 — 可直接放入你的项目并用 dotenv 加载。
常见 JSON 陷阱
顶层数组或标量
.env 文件是一组命名变量的扁平集合,所以输入必须是一个 JSON 对象。顶层数组或裸值(如字符串或数字)没有键名可映射到变量,工具会报告错误。先把你的数据用带有描述性键的对象包裹起来。
["a", "b", "c"]
{"ITEMS": "a,b,c"} 无效的 JSON 语法
输入必须是合法的 JSON。尾随逗号、单引号和未加引号的键是从 JavaScript 抄来的常见错误,会导致带行号和列号的解析错误。所有键和字符串值都用双引号,并移除任何尾随逗号。
{'PORT': 8080,} {"PORT": 8080} 期望 .env 中有嵌套结构
嵌套对象和数组无法在扁平的 .env 文件中原生表示。工具会把它们序列化为 JSON 字符串并警告你,但该值会变成一个不透明的单一字符串。如果你需要保留结构,请转换为 YAML 而非 .env。
{"DB": {"host": "localhost", "port": 5432}} {"DB_HOST": "localhost", "DB_PORT": 5432} 不是合法变量名的键
多数 shell 和加载器只接受匹配 [A-Za-z_][A-Za-z0-9_]* 的变量名 — 以数字开头或含空格或短横线的键是无效的。按原样保留键时工具会就这类键警告你;「规范化键」能修复大小写和短横线,但无法挽救以数字开头的名字,所以请在你的 JSON 中重命名这类键。
{"2fa-enabled": true} {"TWO_FA_ENABLED": true} 需要加引号却未加引号的字符串
如果你手写 JSON,记住一个含空格或 # 的值仍必须是合法的 JSON 字符串(在双引号中)。工具之后会为 .env 自动重新加引号。错误在于在输入侧忘了 JSON 引号,这会产生无效的 JSON。
{"MSG": Hello World} {"MSG": "Hello World"} 常见使用场景
- 从配置导出生成 .env
- 拿一份来自 API、设置面板或密钥管理器的 JSON 配置导出,把它变成一个可直接使用的 .env 文件,用于本地开发或容器。
- 搭建 .env 模板
- 构建一个描述新服务所需变量的 JSON 对象,把它转成 .env,并提交一个 .env.example,让队友清楚知道要填哪些键。
- 把 JSON 配置的工具桥接到 dotenv
- 一些工具以 JSON 输出配置,而你的运行时期望一个 .env。把 JSON 输出转成 dotenv 格式,使管道的两端就同一组变量达成一致。
- 生成可被 source 的 shell env 文件
- 启用 export 前缀以生成一个可在 shell 或 CI 步骤中直接 source 的文件,一次粘贴就把一个 JSON 配置块变成导出的环境变量。
- 往返配置
- 把它与 .env 转 JSON 转换器配对,以结构化 JSON 编辑配置并写回 .env — 往返安全的加引号保证值在双向中都能存活。
- 规范化大小写混杂的键
- 用「规范化键」选项把一个带 camelCase 或 kebab-case 键的 JSON 对象转成带一致 UPPER_SNAKE_CASE 变量名的 .env,匹配环境变量约定。
技术细节
- 仅对象输入与按类型序列化
- 输入用浏览器原生的 JSON.parse() 解析,且必须是一个顶层对象;数组和标量会被以清晰的错误拒绝。每个顶层属性按类型序列化:数字和布尔值裸写,null 变成空值(KEY=),字符串直接写出,除非它包含空格、换行、# 或引号,此时会被加双引号并转义以保证往返安全。
- 嵌套值与键规范化
- 嵌套对象和数组用紧凑的 JSON.stringify 序列化、加双引号并转义,并有一条警告指明被扁平化的键。可选的「规范化键」步骤把键转换为 UPPER_SNAKE_CASE,解决大多数无效名字;当按原样保留键时,任何不匹配 [A-Za-z_][A-Za-z0-9_]* 的键会触发无效名字警告。可以为每行添加一个可选的 export 前缀。
- 基于浏览器 — 无上传、无服务器
- 所有处理都完全在你浏览器的 JavaScript 引擎中进行;任何时候都不会有 JSON 数据通过网络传输。序列化器是自研的,没有外部依赖,因为 Node 的 dotenv 库对浏览器不安全。超过 200KB 的输入会从实时模式切换到手动模式(明确点击「转换」)以保持浏览器响应流畅。
最佳实践
- 除非需要 env 约定,否则按原样保留键
- 当消费应用已经期望你 JSON 中确切的键名时,让「规范化键」保持关闭,使任何键都不会被意外重命名。只有当你明确想要环境变量惯用的 UPPER_SNAKE_CASE 约定时才打开它。
- 有意地扁平化嵌套,而非意外地
- 嵌套值在 .env 中变成一个不透明的 JSON 字符串,多数应用无法自动解析回来。当你看到扁平化警告时,最好在转换前把 JSON 重整为扁平、带前缀的键(DB_HOST、DB_PORT),或选择像 YAML 这样的结构化格式。
- 信任自动加引号以实现往返
- 让工具来决定何时加引号 — 它只对需要的值加双引号并转义。这让 .env 保持可读,同时保证含空格、换行或 # 的值能原样经过 .env 转 JSON 转换器往返。
- 只在仅浏览器的工具中生成密钥
- 你在这里转换的 JSON 实际上是一组凭据。只在完全运行于浏览器中的工具里生成 .env;在 DevTools 中验证零网络请求。这个转换器符合条件,不像服务端或 API 后端的生成器。
- 先校验 JSON 输入
- 如果 JSON 是手写的或由脚本组装的,先用 JSON 格式化 校验它,以捕获尾随逗号或未加引号的键,这样你得到的是一个干净的 .env 而非令人困惑的解析错误。
常见问题
如何在线把 JSON 转换成 .env 文件?
这接受什么样的 JSON?
字符串、数字、布尔值和 null 是如何写出的?
嵌套对象和数组会怎样?
「规范化键」选项有什么作用?
我的 JSON 数据会被发送到服务器吗?
相关工具
查看所有工具 →Base64 解码与编码工具
编码和格式化
免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。
Base64 转图片转换工具
编码和格式化
在浏览器中把 Base64 字符串或 data URI 解码还原为图片。预览、读取尺寸与 MIME,再下载为 PNG、JPG、GIF、SVG。无需上传。
CSV 转 JSON 转换器
编码和格式化
在浏览器中将 CSV 转换为 JSON。支持 RFC 4180、类型推断、表头行、大整数安全。100% 隐私,无需上传。
.env 转 JSON 转换器
编码和格式化
粘贴 .env 文件,立即得到 JSON。数据库密码、API 密钥和令牌绝不离开你的浏览器 — 100% 本地、零上传、免费的 dotenv 解析器。
HTML 转 Markdown 转换器
编码和格式化
在浏览器中将 HTML 转换为干净的 Markdown——支持 GFM 表格、任务列表和链接。可选 ATX/Setext 标题及内联或引用链接。非常适合迁移网页内容或喂给 LLM。100% 私密,无需上传。
图片转 Base64 转换工具
编码和格式化
在浏览器中将图片转换为 Base64 data URI——支持 PNG、JPG、GIF、WebP、SVG、ICO。一键复制 HTML、CSS、Markdown 和 JSON 输出。100% 私密,无需上传。