If this tool helped you, you can buy us a coffee ☕
将JSON数据快速转为TOML格式,适用于配置文件迁移
Enter JSON data to generate TOML.

JSON to CSV & CSV to JSON Converter
Convert seamlessly between JSON arrays and CSV tabular data. Ideal for data analysis and software development.

JSON to Java POJO Generator
Automatically convert JSON strings into standard Java POJO class code for API integration, data modeling, and other development scenarios.

JSON to XML & XML to JSON Converter
A two-way conversion tool for JSON and XML data structures, designed for development, testing, and data processing.
你手头有一份JSON格式的配置文件(比如来自某个API的响应),但你想把它改成TOML格式——因为TOML更易读、支持注释,更适合长期维护的配置文件。比如:从后端接口拿到一个用户设置数据,需要保存到服务器的单文件配置中;或者你在写Rust、Python项目,它们的配置管理库偏爱TOML。我们的在线转换器能帮你一键完成这个转换,不用手动逐行改格式。
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,所有键值对必须用双引号包裹,结构紧凑但不自带注释。TOML(Tom's Obvious Minimal Language)是专为配置文件设计的格式,使用表(table)和数组表(array of tables)来表达层次,支持#注释,键名可以不加引号,对人工读写更友好。简单说:JSON适合机器间传输,TOML适合人类编辑。
我们假设一个用户信息JSON:{"name": "张三", "age": 30, "active": true}。打开我们的转换器,在左侧JSON输入框中粘贴这段内容(注意外层没有方括号表示对象)。点击“转换”按钮,右侧输出框会显示:
name = "张三"
age = 30
active = true转换后的TOML每一行对应一个键值对,布尔值true被转换成小写true(TOML规范本身也用小写)。这个例子中所有字段都在顶层,TOML不需要花括号,结构一目了然。
再来一个复杂点的JSON:{"server": {"host": "127.0.0.1", "port": 8080}, "tags": ["dev", "test"]}。转换成TOML后:
[server]
host = "127.0.0.1"
port = 8080
tags = ["dev", "test"]这里的server对象变成了一个TOML表([server]),其下的键直接跟在下面;数组tags仍然保留数组语法,注意TOML数组内元素用逗号分隔且方括号在同一行。如果再嵌套一层对象数组(比如多个用户),TOML会使用[[users]]来标识。
转换后你得到的TOML文本可以直接粘贴到项目配置文件(例如config.toml)中使用。解读时注意:
- 顶层键没有表头,直接写键值对。
- 嵌套对象{"a": {"b": 1}}变成[a]表,b = 1在其下。
- 对象数组(如[{"x":1}, {"x":2}])变成[[arr]]表,每个数组元素是一个单独的表。
- 空对象、空数组会被保留(空表或空数组)。
- 重要:TOML 1.0 不支持JSON中的null值、浮点数特殊值(NaN, Infinity)、以及超大整数(超出64位有符号整数范围)。如果你在JSON中用了这些,转换器会显示“不支持”提示并跳过该字段。
| JSON语法 | TOML语法 | 示例 |
|---|---|---|
"key": value | key = value | "name": "Tom" → name = "Tom" |
{"sub": {}} | [sub] 空表 | → [sub] (空) |
[elem1, elem2] | [elem1, elem2] | 数组语法基本一致 |
[{"k":1}, {"k":2}] | [[arr]] + k = 1 等 | 对象数组 |
null | 不支持 | 会跳过或报错 |
| 注释:无 | # 注释 | 可在行尾添加 |
1.0会被转为1.0;1转成整数1。TOML区分整数和浮点数,而JSON只有Number类型。转换器会尽量保持原样,但如果是1e2这种科学计数法,TOML也支持。true/false,JSON允许大写或小写。我们的转换器一律输出小写。1979-05-27T07:32:00Z)。如果你在JSON里用ISO 8601格式字符串,转换器不会自动识别,仍会当作字符串处理。需要手动调整。[foo.bar.baz],需要注意可维护性。Q1: 转换后数据会丢失吗?
A: 大部分情况下完整保留,但TOML不支持null、NaN、Infinity和大于2^63-1的整数,这些字段会被跳过或显示警告。
Q2: 支持大JSON文件吗?
A: 在线工具受浏览器内存限制,建议文件小于2MB。超大JSON建议用本地工具处理。
Q3: 我的JSON数组里全是字符串,转换后为什么还是数组?
A: TOML当然支持字符串数组,转换后格式不变,只是把引号统一为双引号(TOML规定字符串须用双引号)。
Q4: 转换后TOML能直接用在Rust的toml库或Python的tomllib中吗?
A: 可以,我们的输出符合TOML v1.0规范,多数主流语言解析器都能正确读取。
Q5: 为什么我的JSON有注释(//)?
A: 标准JSON不支持注释,如果你是从编辑器或带注释的JSONC文件粘贴的,请先移除注释再粘贴,否则转换器会报JSON语法错误。
Q6: 这个工具会存储我的数据吗?
A: 所有转换都在浏览器本地完成,不会上传到服务器,数据不会离开你的电脑。
本转换器基于TOML v1.0规范(toml.io/en/v1.0.0)。不适用于以下场景:
- 需要保留null值的JSON(TOML无等价类型,建议改为空字符串或默认值)。
- JSON中包含注释(非标准,转换前需手动清理)。
- 超大或深度嵌套的JSON(超过10层可能影响输出可读性)。
- 精度要求极高的财务数字(TOML浮点数使用64位双精度,与JSON一致,但科学计算场景请另行校验)。
如果你发现转换结果不符合预期,请检查JSON是否严格遵循JSON格式(例如键名必须有双引号、末尾不能有逗号)。
现在你可以在上方计算器里试试自己的数字。