Bộ chuyển đổi TOML sang JSON
Dán TOML bên trái, nhận JSON bên phải. Bảng trở thành đối tượng, mảng bảng trở thành mảng. Không tải lên.
- Dán TOML của bạn vào vùng văn bản bên trái.
- Bấm "Chuyển sang JSON". Đầu ra là một đối tượng JSON giữ nguyên việc lồng bảng.
- Sao chép kết quả hoặc tải xuống dưới dạng data.json.
- Giá trị datetime được chuyển thành chuỗi ISO 8601; dấu gạch dưới trong số bị loại bỏ.
Công cụ này làm gì?
Phân tích tài liệu TOML 1.0 thành đối tượng JSON. Bảng `[section]` trở thành đối tượng lồng nhau; mảng bảng `[[items]]` trở thành mảng JSON. Chuỗi, số nguyên (bao gồm chữ hex/octal/binary và dấu gạch dưới nhóm chữ số), số thực, boolean, ngày, datetime, và thời gian đều ánh xạ tới biểu diễn tương đương trong JSON. Bảng inline và mảng inline được làm phẳng theo cùng cách.
Ví dụ
Đầu vào TOML:
name = "Ada"
active = true
[address]
city = "London" Đầu ra JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} Lỗi TOML thường gặp và cách khắc phục
TOML có quy tắc nghiêm ngặt hơn YAML hoặc JSON ở vài chỗ. Các mẫu dưới đây bao gồm hầu hết các lỗi phân tích.
- Chuỗi không có dấu nháy. `name = Ada` không hợp lệ — giá trị trần được hiểu là khóa/boolean/số, không phải chuỗi. Dùng dấu nháy đôi: `name = "Ada"`.
- Mảng có kiểu hỗn hợp (TOML 0.x). TOML 0.5 cấm kiểu hỗn hợp trong mảng; TOML 1.0 cho phép. @iarna/toml theo 1.0, vì vậy `[1, "two"]` hợp lệ ở đây. Nếu TOML của bạn phải đi vòng qua công cụ 0.5, giữ mảng đồng nhất.
- Định nghĩa lại bảng. Định nghĩa `[a]` hai lần là lỗi. Mỗi tiêu đề bảng phải xuất hiện nhiều nhất một lần. Hợp nhất các khóa vào một khối `[a]` duy nhất.
- Datetime không có múi giờ. `d = 2026-04-26T12:00:00` (không có Z hoặc offset) là "datetime cục bộ" — phân tích được, nhưng JSON không có khái niệm địa phương. Đầu ra là cùng chuỗi với thời gian đồng hồ tường, không phải khoảnh khắc UTC. Thêm `Z` để có UTC: `d = 2026-04-26T12:00:00Z`.
- Nhầm lẫn thoát dấu nháy ba. Chuỗi nhiều dòng cơ bản TOML dùng `"""..."""` và xử lý thoát; chuỗi nhiều dòng nguyên văn dùng `\'\'\'...\'\'\'` và không. Trộn lẫn quy tắc thoát là lỗi chuỗi nhiều dòng phổ biến nhất.
- Mở rộng bảng inline. Bảng inline `point = {x=1, y=2}` đã đóng và tự chứa — bạn không thể viết `[point.z]` hoặc `point.z = 3` sau đó. Để mở rộng, dùng cú pháp khối tiêu chuẩn `[point]`.
Câu hỏi thường gặp
Datetime được biểu diễn trong JSON thế nào?
JSON không có kiểu datetime bản địa, nên giá trị trở thành chuỗi ISO 8601. Datetime offset (`2026-04-26T12:00:00Z`) và datetime cục bộ (`2026-04-26T12:00:00`) đều chuyển thành chuỗi nguyên văn — nhưng chỉ dạng có offset là không mơ hồ trong JSON.
Dấu gạch dưới trong số nguyên có được giữ không?
Không — TOML cho phép `1_000_000` để dễ đọc; bộ phân tích bỏ dấu gạch dưới và giá trị JSON là `1000000`. Việc nhóm thuần túy là tính năng văn bản nguồn TOML.
Bình luận TOML xảy ra gì?
Chúng bị bỏ. Bình luận TOML bắt đầu bằng `#`; JSON không có cú pháp bình luận, nên bộ phân tích loại bỏ chúng. Nếu bạn cần giữ chúng, bạn cần định dạng trung gian khác.
Mảng bảng có được hỗ trợ không?
Có. Khối `[[products]]` lặp lại nhiều lần trở thành mảng JSON dưới khóa `products`. Mỗi tiêu đề `[[products]]` giới thiệu một mục mảng mới; các dòng khóa-giá trị tiếp theo điền vào mục đó.
Tôi có thể chuyển tệp TOML thực sự lớn không?
Đến khoảng 30 MB trước khi textarea chậm lại. Tệp TOML rất lớn hiếm khi có — hầu hết tệp cấu hình dưới 1 MB nhiều.
TOML của tôi có được tải lên không?
Không. Mọi thứ chạy trong trình duyệt của bạn — dữ liệu của bạn được phân tích bởi JavaScript trên trang này và không bao giờ được gửi đến máy chủ.