Chuyển JSON Sang TOML
Công cụ Chuyển JSON Sang TOML biến dữ liệu JSON (JavaScript Object Notation) thành TOML (Tom's Obvious Minimal Language) gọn gàng và hợp lệ. Dán JSON vào bên trái và kết quả TOML hiện ngay bên phải khi bạn gõ, với object, cấu trúc lồng nhau, mảng các object và giá trị datetime được tự động ánh xạ sang đúng cú pháp TOML.
Công cụ được làm cho các tệp cấu hình dùng TOML — Cargo.toml của Cargo cho Rust, pyproject.toml của Python, Hugo và những công cụ tương tự — cũng như cho cấu hình DevOps và việc di chuyển dữ liệu giữa các hệ thống dùng định dạng khác nhau. Nếu bạn đang học TOML, đây cũng là cách nhanh để thấy một cấu trúc JSON quen thuộc được dịch sang table và khóa TOML như thế nào.
Cách Sử Dụng
Thêm JSON của bạn
Dán hoặc gõ JSON vào ô bên trái, hoặc nhấn Tải tệp lên để nạp tệp .json từ thiết bị. Nhấn Dữ liệu mẫu để dùng thử một ví dụ cấu hình có sẵn.
Xem nó chuyển đổi
Kết quả TOML tự động hiện ở ô bên phải. Thanh trạng thái cho biết dữ liệu đầu vào là Hợp lệ hay Không hợp lệ, cùng với số khóa và dung lượng đầu ra.
Tinh chỉnh tùy chọn
Đặt Null thành Bỏ qua (lược bỏ khóa null) hoặc "" (đổi chúng thành chuỗi rỗng), và bật Inline Table để giữ các object nhỏ gọn lại. Kết quả được chuyển đổi lại ngay lập tức.
Sao chép hoặc tải xuống
Dùng Sao chép để đưa TOML vào clipboard, hoặc Tải xuống để lưu thành tệp .toml. Xóa sẽ làm trống cả hai ô để bắt đầu lại.
Tính Năng
Chuyển Đổi Theo Thời Gian Thực
JSON được chuyển sang TOML khi bạn gõ, và đổi bất kỳ tùy chọn nào cũng chuyển đổi lại kết quả ngay lập tức.
Ánh Xạ Cấu Trúc Thông Minh
Object trở thành header [table], object lồng nhau dùng đường dẫn chấm như [parent.child], còn mảng nguyên thủy giữ nguyên dạng inline.
Array of Tables
Mảng mà mỗi phần tử đều là object sẽ được viết thành array of tables của TOML bằng cú pháp [[array]].
Bật/Tắt Inline Table
Các object nhỏ với tối đa ba giá trị nguyên thủy có thể được hiển thị thành inline table gọn như { key = "value" }.
Xử Lý Null
TOML không có kiểu null, nên bạn chọn bỏ qua các khóa null (kèm cảnh báo) hoặc đổi chúng thành chuỗi rỗng.
Nhận Diện Datetime
Chuỗi khớp với mẫu ngày, giờ hoặc datetime theo chuẩn RFC 3339 được xuất ra dưới dạng datetime TOML trần, không có dấu ngoặc kép.
Tự Động Đặt Ngoặc Kép Cho Khóa
Khóa có khoảng trắng, dấu chấm hoặc ký tự đặc biệt được tự động đặt trong ngoặc kép, còn khóa đơn giản giữ nguyên dạng trần cho dễ đọc.
Tải Tệp Lên & Tải Xuống
Nạp một tệp JSON trực tiếp từ thiết bị và lưu kết quả thành tệp .toml chỉ với một cú nhấp.
Kiểm Tra & Cảnh Báo
JSON không hợp lệ sẽ hiện thông báo lỗi rõ ràng, và cảnh báo sẽ đánh dấu những giá trị không thể ánh xạ gọn sang TOML.
Thống Kê Thanh Trạng Thái
Thanh trạng thái dưới cùng báo trạng thái Hợp lệ / Không hợp lệ / Sẵn sàng, tổng số khóa và dung lượng tệp đầu ra.
Câu Hỏi Thường Gặp
Làm sao để chuyển JSON sang TOML?
Dán hoặc gõ JSON vào ô bên trái, hoặc tải lên một tệp .json. TOML hiện tự động ở ô bên phải khi bạn gõ. Từ đó bạn có thể sao chép hoặc tải nó xuống thành tệp .toml — không cần cài đặt hay đăng ký gì cả.
Việc chuyển đổi có thực hiện trong trình duyệt và dữ liệu của tôi có an toàn không?
Có. Toàn bộ việc phân tích và chuyển đổi diễn ra ngay tại trình duyệt của bạn, kể cả các tệp bạn tải lên — chúng được đọc trên thiết bị và không bao giờ gửi đến máy chủ. JSON của bạn không bị lưu trữ hay theo dõi.
JSON và TOML khác nhau như thế nào?
Cả hai đều mô tả dữ liệu có cấu trúc, nhưng TOML được thiết kế thành một định dạng cấu hình rõ ràng và thân thiện với con người. Nó dùng header [table], đường dẫn chấm và datetime trần, và gốc của nó luôn phải là một table. JSON đa dụng hơn và cho phép mảng, giá trị nguyên thủy hoặc null ở gốc, những thứ mà TOML không chấp nhận ở đó.
Tại sao không thể chuyển một mảng JSON làm gốc?
TOML yêu cầu gốc phải là một table gồm các cặp khóa-giá trị, nên một mảng JSON ở cấp cao nhất không có thứ tương đương. Hãy bọc mảng của bạn trong một object trước, ví dụ {"items": [1, 2, 3]}, và nó sẽ chuyển đổi gọn gàng.
Giá trị null được xử lý như thế nào?
TOML không có kiểu null, nên bạn chọn cách xử lý chúng bằng tùy chọn Null. Bỏ qua sẽ lược bỏ các khóa null khỏi kết quả và hiện cảnh báo liệt kê những khóa đã bị loại, còn "" sẽ đổi chúng thành chuỗi rỗng.
Công cụ có hỗ trợ object lồng nhau và mảng các object không?
Có. Object lồng nhau trở thành sub-table dạng chấm như [parent.child], và mảng mà mỗi phần tử đều là object được viết thành array of tables của TOML bằng cú pháp [[name]]. Mảng hỗn hợp chứa cả object lẫn giá trị nguyên thủy thì được xử lý thành mảng inline.
Inline table là gì?
Inline table là một cú pháp TOML gọn cho các object nhỏ, chẳng hạn point = { x = 1, y = 2 }. Bật tùy chọn Inline Table để dùng định dạng này cho các object có tối đa ba giá trị nguyên thủy, cho ra kết quả gọn hơn.
Chuỗi datetime có được nhận diện tự động không?
Có. Chuỗi khớp với mẫu RFC 3339 — như 2024-01-15, 2024-01-15T10:30:00Z hoặc 10:30:00 — được xuất ra dưới dạng datetime TOML trần, không có dấu ngoặc kép, nên chúng vẫn là giá trị datetime hợp lệ thay vì chuỗi thường.
Có giới hạn dung lượng không?
Không có giới hạn cố định. Vì mọi thứ chạy trong trình duyệt, mức tối đa trên thực tế phụ thuộc vào bộ nhớ thiết bị của bạn. Công cụ xử lý các tệp JSON lớn một cách hiệu quả, dù những tập dữ liệu cực lớn có thể chuyển đổi chậm hơn.
Chưa có bình luận nào. Hãy là người đầu tiên!