跳到内容
🛠️ToolsShed

TOML ↔ JSON 转换器

在TOML和JSON格式之间相互转换并验证TOML语法。

关于此工具

TOML(Tom's Obvious, Minimal Language)和JSON是软件开发中广泛使用的两种配置和数据格式。TOML是一种人性化的格式,常见于Rust项目、Python工具和现代应用配置中,而JSON是Web API和Web应用中数据交换的通用标准。在迁移项目、跨不同系统共享配置或与需要特定格式的工具协作时,在这两种格式之间进行转换是必不可少的。

使用此转换器,只需将TOML或JSON内容粘贴到输入区域,工具会自动检测格式并将其转换为另一种格式。它还会验证输入的语法,并在转换前报告任何错误。在集成第三方库、管理环境配置、为API标准化数据或确保配置文件语法正确时,使用此工具。

此转换器处理嵌套结构、数组、内联表以及所有TOML和JSON数据类型,包括日期和浮点数。需要注意的是,转换过程中TOML注释不会被保留——如果保留注释至关重要,请考虑使用版本控制或单独的文档。此工具非常适合开发人员、DevOps工程师和处理多种配置格式的任何人使用。

常见问题

代码实现

# Python 3.11+ has tomllib built-in (read-only)
# For older versions: pip install tomli
# For writing: pip install tomli-w

import tomllib  # Python 3.11+
# import tomli as tomllib  # Python < 3.11

toml_text = """
[package]
name = "my-app"
version = "1.0.0"
authors = ["Alice <alice@example.com>"]

[dependencies]
requests = ">=2.28.0"
flask = { version = ">=3.0", optional = true }

[[server]]
host = "web1.example.com"
port = 8080

[[server]]
host = "web2.example.com"
port = 8081
"""

# Parse TOML string
data = tomllib.loads(toml_text)
print(data["package"]["name"])      # my-app
print(data["dependencies"])          # {'requests': '>=2.28.0', ...}
print(data["server"])                # [{'host': 'web1...', 'port': 8080}, ...]

# Parse from file
with open("pyproject.toml", "rb") as f:  # Must open in binary mode!
    config = tomllib.load(f)

# Writing TOML (requires tomli-w or tomllib doesn't support write)
# pip install tomli-w
import tomli_w
output = tomli_w.dumps({"key": "value", "count": 42})
print(output)
# key = "value"
# count = 42

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.