INI

INI 转 JSON

将明确支持的 INI 子集转为 JSON,默认保留字符串并拒绝重复键

数据格式
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日

INI 受限子集:支持 = / :、单层 [分组]、整行 # / ; 注释和前有空白的行尾注释。单行单双引号内按字面保留,不解释转义、插值或续行;重复分组也会报错。注释与排版不保留。

输入 ≤2 MiB,输出和名称映射各 ≤8 MiB,深度 ≤128,值总数 ≤100000,键或生成路径 ≤8192 字符,数字文本 ≤256 字符。拒绝重复键、名称冲突、负零、非有限数、NUL 和未配对 Unicode 代理项。JSON 数字须能等值回写,整数限 ±9007199254740991。

配置在当前页面本地处理,不上传内容、不保存输入草稿;统计事件不包含键名、值或转换结果。复制或下载后,请按目标应用的实际配置规则复核。

页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

INI 转 JSON 支持明确的单层 INI 子集:[分组]、= 或 : 赋值、整行 # 和 ; 注释,以及前有空白的行尾注释。默认将值保留为字符串,避免改变 00123、高精度 ID 和引号内空白;可选类型推断只处理未加引号的严格 JSON 基础类型,引号值始终为字符串。单行引号内容按字面保留,不解释转义、插值或续行。重复键、重复分组和标量与分组冲突会终止转换。注释与原排版不保留。转换在当前页面本地完成,不上传配置、不保存输入草稿,统计事件不包含键名和值。复制和下载包含当前完整结果,页面预览有长度上限。输入限 2 MiB、深度 128、值总数 100000、键或生成路径 8192 字符,输出和名称映射各限 8 MiB;数字类型文本限 256 字符。不支持 NUL 和未配对 Unicode 代理项。

场景配方

01

迁移旧端口与账号代码时保留原含义

目标:保留文本标识,并明确决定哪些值需要数字类型。

  1. 输入含 code=00123 和 [server] 分组的示例,先关闭类型推断。
  2. 转换后确认 code、port、enabled 都是字符串,带引号 label 内的空格仍保留。
  3. 开启推断再转换:port 变成 8080,enabled 变成 true,code 仍为 "00123"。增加重复 port 行,确认工具拒绝冲突后再复制。

结果:得到类型选择明确、保留前导零且没有静默覆盖键的 JSON 配置。

生产可用片段

字符串默认值与显式推断对照

text

INI 输入:
code=00123
[server]
port=8080
enabled=true
label="  keep  "

默认 JSON:
{"code":"00123","server":{"port":"8080","enabled":"true","label":"  keep  "}}

开启推断:
{"code":"00123","server":{"port":8080,"enabled":true,"label":"  keep  "}}

失败门诊(高频踩坑)

重复分组或标量与分组重名导致转换中止

原因:不同 INI 实现对重复分组的合并规则不同;根 db=old 与 [db] 分组也无法同时占用同一个 JSON 键。

修复:先解决源配置重复或重命名字段。转换器拒绝冲突并且不返回部分对象;不要在未确定应用需要哪个值前直接删掉冲突项。

配置依赖续行或转义处理

原因:此子集按字面处理单行引号文本,不拼接缩进行,也不展开引用;其他 INI 读取器可能采用不同规则。

修复:仅转换受支持的子集,C:\new\test 等路径保持字面文本。源配置依赖续行、插值或转义同类引号时,使用目标应用自己的 INI 解析器。

常见问题

支持哪一种 INI 语法?

支持单层 [分组]、= 或 : 赋值、整行 # / ; 注释,以及前有空白的行尾注释。第一个分隔符分开键和值;分组名中的点号是字面字符。不同 INI 方言规则不同,本工具不支持续行和插值。

为什么 00123 仍是字符串?

默认保留字符串。可选推断仅识别未加引号的 true、false、null 和严格 JSON 数字;00123 不是严格 JSON 数字。引号值始终为字符串。推断时拒绝超出 ±9007199254740991 的整数、会改变的小数、上溢、下溢和负零。

重复键或重复分组会怎样?

转换终止,不输出部分结果。重复键、重复分组及根标量与分组重名都会报错,不会覆盖前值。__proto__ 和 constructor 会作为普通自身数据保留。

引号内空白和反斜杠如何处理?

移除外部空白,保留配对单引号或双引号内的空白。引号内容按字面处理,例如 C:\new\test 保持反斜杠文本。结束引号后只允许空白或注释;多行值和转义同类引号不在支持范围内。

会保留注释、顺序和排版吗?

不保留注释与源排版。输出表达配置数据,不是可逆的 INI 文档;JSON 对象键序也不保证还原 INI 顺序。只有注释的文档会得到空对象;空白输入需要补充配置文本。

配置会保存或上传吗,导出是否完整?

转换在当前页面本地完成,不上传配置、不保存输入草稿,统计事件不包含键名和值。复制和下载包含当前完整结果,页面预览有长度上限。输入限 2 MiB、深度 128、值总数 100000、键或生成路径 8192 字符,输出和名称映射各限 8 MiB;数字类型文本限 256 字符。不支持 NUL 和未配对 Unicode 代理项。

继续浏览