JSON 转 Env 工具

把 JSON 对象转换成 .env 的 KEY=VALUE 格式,支持嵌套对象展平和注释回填,纯浏览器本地运行。

把 JSON 对象粘贴进来,就能得到 dotenv 这类加载器在程序启动时读取的 .env 变量行。嵌套对象会拼成 db.host 这样带点号的变量名,数组写成一行 JSON 文本,true、false 和数字直接写成纯文本;由 Env 转 JSON 生成的 $comments 映射,会重新变回每个变量上方的 # 注释行。转换全程在浏览器里进行,JSON 中的密钥不会离开你的设备。

JSON 输入

上传

高级选项转换清除

.env 输出

结果会显示在这里...

复制下载

结果会显示在这里...

关于 JSON 转 Env 工具

环境变量只能存放扁平的字符串,所以从 JSON 生成 .env,本质上是在决定每个变量叫什么名字。开启展平时,每一层嵌套路径都用分隔符连起来:{ "app": { "cache": { "ttl": 60 } } } 输出为 app.cache.ttl=60,键名的大小写与 JSON 里的写法完全一致,不会被自动改成大写。要留意的是,shell 无法把带点号的名字当作变量使用;如果这份文件要被 shell 脚本 source,请把分隔符改成下划线,得到 app_cache_ttl。关闭展平后,嵌套对象不再拆开,而是整个作为一行 JSON 文本写在等号后面。

你可能还需要

Env 转 JSON

把 .env 文件转换成 JSON,支持类型推断和嵌套键名。

打开工具

JSON 转 Properties

把 JSON 对象转换成 Java .properties 格式,支持点号键名展平。

打开工具

JSON格式化和验证器

格式化、验证和可视化JSON数据。

打开工具

YAML 转 JSON

将 YAML 转换为 JSON 或将 JSON 转换为 YAML。

打开工具

如何把 JSON 转换成 .env

  1. 1

    放入一个 JSON 对象

    输入框里需要的是对象,不能是数组或单独的值;也可以点烧瓶图标,载入一份只含 API 密钥和端口号的扁平示例。

  2. 2

    决定变量名怎么拼

    在高级选项里:保留点号,得到 db.host 这种 dotenv 风格的名字;换成下划线,得到 shell 也能识别的 db_host;或者关闭展平,让嵌套对象以 JSON 文本形式保留。

  3. 3

    生成 NAME=value 行

    点击「转换」后,每个叶子值各占一行,顺序与 JSON 中键的原始顺序一致;$comments 里的条目会以 # 行的形式紧贴在它所说明的变量上方。含换行、首尾空格或 # 的值会加上引号(换行写成 \n),转回 JSON 时能原样读出。

  4. 4

    保存并管好这份文件

    复制文本或下载为 .env 文件;里面若有凭据,别把它提交进版本库。想再解析回 JSON,点切换方向图标即可。

参考资料

相关开发者工具

JSON 转 Env 常见问题

生成的变量名会自动变成大写吗?
不会。键名完全沿用 JSON 里的大小写,{ "db": { "host": "x" } } 输出的是 db.host=x。在 Linux 和 macOS 上,环境变量名是区分大小写的,所以请直接按应用读取时的大小写来写 JSON 的键。
shell 脚本能直接 source 这份 .env 吗?
前提是每个变量名都是合法的 shell 标识符:只含字母、数字和下划线,并且不以数字开头。db.host 这类带点号的名字交给 Node.js 的 dotenv 加载没有问题,但 shell 不会把它识别为赋值语句。打算 source 的文件,请选用下划线分隔符。
数组会被拆成多个变量吗?
不会。开启展平时,嵌套对象会拆成若干个点号变量,而数组整体写成一行 JSON 文本,例如 tags=["a","b"]。关闭展平时,嵌套对象同样以 JSON 文本整体保留。
输出的变量顺序会被打乱吗?
不会。每个叶子值都会按它在 JSON 中出现的原始顺序,依次写成一行 NAME=value,所以生成的 .env 与原 JSON 对照着看很方便。
true 和 8080 这样的值写进 .env 后还有类型吗?
没有。.env 文件本身不区分类型,true、false 和数字都按纯文本写出。用 Env 转 JSON 读回时,只要开启类型推断,它们就会重新变成真正的布尔值和数字。
原来的 # 注释能写回去吗?
可以。JSON 里如果带有 $comments 对象(比如 Env 转 JSON 的输出),每一条都会变成对应变量上方的 # 行。只想要干净的 NAME=value 行,就在高级选项里把「注释处理」设为「忽略」。
粘贴含 API 密钥的 JSON,会被上传吗?
不会。转换在你的浏览器本地完成。.env 文件里往往装着 API 密钥和数据库密码,这一点尤其重要。
为什么会提示变量名无效?
变量名为空,或含有空格、=、:、#、引号、反斜杠时,写进 .env 后就无法原样读回,所以转换会停下来并指出是哪个键,而不是写出一行坏数据。请在 JSON 里改掉这个键名;如果是分隔符带进了这个字符,就换一个分隔符。