配置格式转换

ENV 转 JSON先确定值的含义,再改变格式

字符串还是数值、平面键还是对象路径,都由你明确选择。

ENV 转 JSON

输入

结果

内容仅在当前浏览器处理,不上传、不执行、不保存,也不写入网址。

严格采用 dotenv 17.4.2 子集。引号内始终是字符串;仅对未加引号的 JSON 数字、true、false、null 推断类型。注释及原始引号不保留。

输入上限 500,000 字符 / 2 MB UTF-8;10,000 条赋值、50,000 节点、深度 100;数字标记最多 1,000 字符,输出最多 200 万字符。

输入内容或执行转换。

ENV 转 JSON 适合把部署环境中的赋值文本整理为结构化配置。端口号可能需要保持文字,带引号的 false 也不应该因为看起来像布尔值就被改变。

使用 dotenv 转 JSON 检查受支持的配置文本,也可通过 JSON 转 ENV 生成赋值行。环境变量转换只处理内容,不会执行命令、展开变量引用或替应用决定键名。

为什么使用 ENV 转 JSON

每次类型与结构变化都可解释

看起来是数字,也可以保持文字

ENV 转 JSON 默认保留所有合法值的字符串身份,包括 001、false 和空赋值。只有接收方确实需要数字、布尔值或 null 时才启用推断;加引号的值仍保留文字含义。

平面赋值中的同色值进入带引号的 JSON 字段,旁支把未引用值转换为不同类型的形状。

明确指定对象边界

启用层级后,DATABASE__HOST 会成为 DATABASE 对象里的 HOST 字段。父键与叶键冲突、连接后不能恢复的下划线边界都会阻止转换,不会悄悄把值移到别的位置。

平面键的两个片段展开为对象树,冲突路径被红色挡板拦住。

导出前先确定约定

三个会影响数据含义的选择

01

先选择字符串或推断

默认保留字符串。推断只识别未加引号的合法 JSON 数字及小写 true、false、null;001、NaN、[] 与加引号的数字仍是文字。JSON → ENV 在字符串模式下也只接受字符串叶值。

02

需要时才启用层级

平面模式把 DATABASE__HOST 当作完整名称。__ 模式拆成对象路径;空段、键冲突、段内含 __ 或连接后有歧义的下划线均被拒绝。数组与嵌套空对象不能导出。

03

先预览,再反向使用

“使用结果并反向转换”会展示替换文本及新方向,应用后可一次撤销输入、选项和结果。自动转换等待 350ms;关闭后用转换按钮或 Ctrl/Cmd+Enter。编辑即禁用过期结果的导出。

不暗中改变配置含义

逐项检查转换边界

数字保留原始写法

推断模式的合法 JSON 数字不经过 binary64,原始数字与指数写法保持不变;接收应用仍可能舍入、溢出或下溢。两个方向都限制每个数字标记最多 1,000 字符。

引号语义经过验证

支持单引号、双引号和反引号,可包含多行。只有双引号中的反斜杠 n、反斜杠 r 解码为 LF、CR,其他反斜杠保留。输出器选择值中没有出现的定界符。

路径与名称区分大小写

ENV 名称必须符合 [A-Za-z_][A-Za-z0-9_]*,不会自动改大小写。重复赋值、无效名称、父叶冲突会中止整份转换;为适配已测试的 dotenv 消费者,拒绝 __proto__。

屏幕与文件使用同一结果

编辑器、剪贴板及下载的 UTF-8 文件使用同一份文本。本地文件读入后先显示替换预览;失败时旧结果过期,不能复制或下载半份配置。

语法范围与实际限制

解析配置文本,不充当应用运行时

严格解析,不执行命令
已接受输入以 dotenv 17.4.2 parse 核对:等号赋值、可选 export、空行、# 注释及三种引号。错误行不会被跳过。不执行 shell、dotenv-expand 或命令替换,不读取系统环境;美元变量引用原样保留。
闭合引号有明确边界
不能用反斜杠把同类引号嵌入值中,请换定界符;闭合引号前紧邻反斜杠也被拒绝。双引号仅解码字面的反斜杠 n、r;ENV 输入中的实际 CRLF、CR 规范化为 LF。不宣称兼容所有 shell 或 dotenv 方言。
并非每个字符串都能写回
依次尝试单引号、反引号和安全的双引号,再尝试裸值;裸值不得含 #、CR/LF、首尾空白,也不能以引号开头。CR 必须通过安全双引号表达,末尾反斜杠只能用安全裸值。引号与字面转义冲突可能使值无法表示,此时报告路径且不输出部分结果。
只映射对象路径与基本值
JSON 根必须是对象。字符串模式拒绝数字、布尔值和 null;推断模式显式写出这些标记,带引号的字符串往返仍是文字。数组不会被偷偷字符串化。平面模式不接受子对象;层级模式拒绝空对象、段内 __ 及拆分无法恢复的路径。空根对象 {} 输出空 ENV 文件。 每个 ENV 名称及路径段都必须符合 [A-Za-z_][A-Za-z0-9_]*,保留大小写,拒绝重复键及 __proto__。
规范化会丢弃排版信息
JSON 不保留注释、export、原始定界符和空白。不提供自动重命名、数组索引推断、合并、批量 ZIP、网址读取、分享链接或持久历史。普通 ENV 加载器即使读到裸 null 或 true 也返回字符串,类型策略须由接收方明确选择。
处理预算公开
输入最多 500,000 个 UTF-16 字符及 2 MB UTF-8;最多 10,000 条赋值、50,000 个节点、深度 100。每个数字标记最多 1,000 字符,输出最多 200 万字符。不支持 NUL 或未配对 Unicode 代理项。大小、语法或可表示性检查失败均禁用全部导出。

ENV 转 JSON 常见问题

从引号到嵌套结构

ENV 值外面的引号会保留吗?

ENV 转 JSON 会去掉受支持的外层定界符,内容仍为字符串。双引号只解码反斜杠 n、r,单引号和反引号按字面处理。不能用反斜杠嵌入同类定界符,闭合位置有歧义也会报错。

注释及 export 标记转换后还在吗?

不会进入 JSON。裸值中的 # 开始注释,引号内的 # 则是内容。export 只作语法识别,绝不执行;反向转换会生成新赋值行,无法还原原来的排版。

数字为什么变成 JSON 字符串?

环境变量原本是字符串,因此默认保留文字。需要真实 JSON 基本类型时启用推断;仅处理未引用的合法数字、true、false、null。001 及带引号的 42 不会提升类型,大数字在预算内保留全部位数。

生成 ENV 时哪些值需要引号?

输出通常给字符串加引号,保护空白、# 以及看起来像基本类型的文字。会选择合适定界符,不套用 JSON 转义。部分引号组合或末尾反斜杠可退回安全裸值;其他无法表示的组合会报告路径。

嵌套 JSON 怎样映射为 ENV?

选择 __ 层级,把非空对象路径连接成名称,例如 DATABASE.HOST 对应 DATABASE__HOST,保持大小写。数组、空子对象、非法名称及下划线歧义被拒绝;平面模式不解释层级。

遇到不同的 ENV 引号情况?

试用 ENV 转 JSON

使用 ENV 转 JSON 在迁移配置前明确字符串策略与对象路径,避免由格式转换替你猜测字段含义。

请核对接收加载器的值类型与引号约定。