Konverter TOML ke JSON
Tempel TOML, dapatkan JSON instan di browser. Siap Cargo.toml, pyproject.toml & config.toml. Tanggal & tabel bersarang akurat. 100% privat, tanpa unggah.
Opsi · 2 spasi
Apa Itu TOML dan Mengapa Mengonversi ke JSON?
TOML (Tom's Obvious, Minimal Language) adalah format berkas konfigurasi yang dibuat oleh Tom Preston-Werner agar tak ambigu, mudah dibaca manusia, dan sepele dipetakan ke tabel hash. Format ini telah menjadi format konfigurasi bawaan untuk ekosistem Rust (Cargo.toml), pemaketan Python modern (pyproject.toml, distandarkan dalam PEP 518 dan PEP 621), dan alat seperti Hugo, Netlify, Poetry, dan Foundry. JSON, sebaliknya, adalah format pertukaran-mesin universal — setiap bahasa menguraikannya, setiap API berbicara dengannya. Mengonversi TOML ke JSON karena itu adalah tugas umum: Anda menulis konfigurasi dalam TOML yang mudah dibaca, lalu mengonversi ke JSON untuk memasok program, memeriksanya dengan perkakas JSON, atau membandingkannya dalam pipeline.
Alat ini memiliki beberapa pembeda yang penting untuk kebenaran:
**1. Kesetiaan date-time.** TOML memiliki tipe tanggal dan waktu kelas satu — offset date-time, local date-time, tanggal lokal, dan waktu lokal — yang sama sekali tidak dimiliki JSON. Konverter naif meratakan semuanya menjadi stempel waktu ISO, jadi tanggal lokal seperti 1979-05-27 menjadi 1979-05-27T00:00:00Z, diam-diam mengarang waktu dan zona waktu. Alat ini mempertahankan jenis TOML yang persis: tanggal lokal tetap tanggal kalender, waktu lokal tetap waktu, dan hanya offset date-time yang membawa zona waktu. Itu menjaga data Anda jujur dan bolak-balik tanpa kehilangan data.
**2. Dukungan TOML 1.0.0 penuh.** Tabel bersarang, kunci bertitik, tabel inline, dan larik tabel ([[section]]) semuanya diuraikan dengan benar sesuai spesifikasi TOML 1.0.0 menggunakan pustaka smol-toml tanpa-dependensi. Berkas Cargo.toml dan pyproject.toml nyata dengan campuran tabel inline dan standar dikonversi persis seperti yang dituntut spesifikasi.
**3. Penanganan bilangan bulat besar yang jujur.** Bilangan bulat TOML adalah 64-bit, tetapi JavaScript browser hanya dapat menampung bilangan bulat hingga 2^53 - 1 secara persis. Alih-alih diam-diam merusak nilai besar atau mogok, alat ini mengonversi ke angka JSON terdekat dan memperingatkan Anda, jadi Anda dapat memilih menyimpan nilai sebagai string sebagai gantinya. Kejujuran tentang keterbatasan browser mendasar ini adalah sesuatu yang diabaikan sebagian besar konverter.
**4. Privasi 100% berbasis browser.** TOML Anda — yang mungkin berisi token registri, sumber paket internal, atau rahasia deployment — tidak pernah meninggalkan browser Anda. Tanpa unggah, tanpa server, tanpa pencatatan. Anda dapat mengonfirmasi ini di tab Jaringan browser Anda.
Butuh sebaliknya? Gunakan Konverter JSON ke TOML. Mengonversi antar format konfigurasi lain? Coba Konverter JSON ke YAML dan Konverter YAML ke JSON, atau validasi dan cetak-rapi output JSON Anda dulu dengan Pemformat JSON. TOML, JSON, dan YAML masing-masing punya tempatnya: TOML untuk konfigurasi aplikasi yang disunting manusia, JSON untuk pertukaran mesin, dan YAML untuk manifes infrastruktur yang bersarang dalam. Konverter ini memungkinkan Anda berpindah antara dua yang pertama tanpa satu baris kode pun.
// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';
const toml = `
[package]
name = "my-app"
version = "1.0.0"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;
const data = parse(toml);
const json = JSON.stringify(data, null, 2);
console.log(json);
// {
// "package": { "name": "my-app", "version": "1.0.0" },
// "dependencies": {
// "serde": { "version": "1.0", "features": ["derive"] }
// }
// } Fitur Utama
Konversi Langsung
Output JSON diperbarui instan saat Anda mengetik atau menempel TOML — tanpa perlu tombol Konversi. Input besar (>200KB) otomatis beralih ke mode manual untuk menjaga browser tetap responsif.
Kesetiaan Date-Time
Offset date-time, local date-time, tanggal lokal, dan waktu lokal TOML dikonversi menjadi string JSON yang mempertahankan jenis aslinya — tanpa stempel waktu tengah malam yang dibuat-buat, jadi bolak-balik tetap tanpa kehilangan data.
Dukungan TOML 1.0.0 Penuh
Tabel bersarang, kunci bertitik, tabel inline, dan larik tabel ([[section]]) semuanya diuraikan dengan benar melalui mesin smol-toml tanpa-dependensi, sesuai spesifikasi TOML 1.0.0.
Siap Cargo.toml & pyproject.toml
Dioptimalkan untuk berkas TOML dunia nyata yang paling umum — manifes Rust dan konfigurasi pemaketan Python — termasuk tabel inline dan larik tabel. Muat contoh untuk melihat struktur JSON persisnya.
Peringatan Bilangan Bulat Besar yang Jujur
Bilangan bulat di luar rentang aman JavaScript (2^53) tidak dapat direpresentasikan secara persis dalam JSON — alat mengonversinya ke angka terdekat dan memperingatkan Anda, alih-alih diam-diam merusak nilai.
Privasi 100% Berbasis Browser
Semua penguraian berjalan lokal di browser Anda. TOML Anda — termasuk token registri, sumber paket privat, dan rahasia deployment — tidak pernah diunggah, disimpan, atau dicatat.
Contoh
Cargo.toml (Rust)
[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
criterion = "0.5"
[[bin]]
name = "my-app"
path = "src/main.rs" Konversi manifes Cargo.toml Rust ke JSON — berguna untuk perkakas, dasbor dependensi, atau memasok metadata cargo ke skrip yang mengharapkan JSON.
pyproject.toml (Python)
[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "my-package" version = "0.3.1" requires-python = ">=3.10" dependencies = [ "requests>=2.31", "pydantic>=2.0" ] [project.optional-dependencies] dev = ["pytest>=8.0", "ruff>=0.4"] [tool.ruff] line-length = 100
Konversi pyproject.toml PEP 621 ke JSON untuk memeriksa metadata proyek, dependensi, dan konfigurasi alat secara programatis.
netlify.toml
[build] command = "npm run build" publish = "dist" [build.environment] NODE_VERSION = "20" [[redirects]] from = "/old-path" to = "/new-path" status = 301 force = true [[headers]] for = "/*" [headers.values] X-Frame-Options = "DENY"
Konversi konfigurasi build Netlify ke JSON untuk mengaudit pengalihan dan header atau menghasilkan konfigurasi setara untuk platform lain.
Hugo config.toml
baseURL = "https://example.org" languageCode = "en-us" title = "My Hugo Site" theme = "ananke" [params] description = "A static site built with Hugo" mainSections = ["posts", "docs"] [[menu.main]] name = "Blog" url = "/posts/" weight = 1 [[menu.main]] name = "About" url = "/about/" weight = 2
Konversi config.toml situs Hugo ke JSON untuk memigrasikan pengaturan, membandingkan konfigurasi, atau menggerakkan UI konfigurasi.
rustfmt.toml
edition = "2021" max_width = 100 hard_tabs = false tab_spaces = 4 newline_style = "Unix" use_small_heuristics = "Default" reorder_imports = true reorder_modules = true
Konversi rustfmt.toml datar ke JSON — contoh bagus bagaimana pasangan kunci-nilai tingkat atas (tanpa tabel) memetakan langsung ke objek JSON.
Konfigurasi aplikasi dengan tanggal & larik tabel
title = "Deployment Log" last_deployed = 1979-05-27T07:32:00Z release_date = 1979-05-27 maintenance_window = 02:00:00 [[servers]] name = "alpha" ip = "10.0.0.1" ports = [8001, 8002] [[servers]] name = "beta" ip = "10.0.0.2" ports = [9001]
Menunjukkan bagaimana date-time asli TOML (offset date-time, tanggal lokal, waktu lokal) dan larik tabel dikonversi dengan rapi ke string dan larik JSON.
Cara Menggunakan
- 1
Tempel TOML Anda
Masukkan atau tempel TOML Anda ke bidang input di atas. Anda juga dapat mengeklik 'Muat contoh' untuk mencoba Cargo.toml, pyproject.toml, atau konfigurasi deployment nyata.
- 2
Lihat Output JSON Langsung
JSON muncul instan di panel output. Sesuaikan opsi Indentasi (2 atau 4 spasi) agar cocok dengan format target Anda. Tanggal, tabel, dan larik tabel ditangani otomatis.
- 3
Salin atau Unduh
Klik Salin untuk mengambil JSON ke papan klip Anda, atau Unduh untuk menyimpannya sebagai berkas .json yang siap untuk program, API, atau perkakas Anda.
Jebakan TOML Umum
Nilai String Tanpa Kutip
Dalam TOML, nilai string harus dikutip. Kata telanjang di sebelah kanan tanda sama dengan hanya valid untuk boolean (true/false), angka, tanggal, atau sebagai bagian dari larik. Kutip string Anda dengan tanda kutip ganda atau tunggal.
name = my-app
name = "my-app"
Kunci Duplikat
TOML melarang mendefinisikan kunci yang sama dua kali dalam tabel yang sama, dan melarang mendefinisikan ulang tabel yang sudah didefinisikan. Ini kesalahan umum saat menggabungkan fragmen konfigurasi. Setiap kunci dan tabel harus unik.
name = "a" name = "b"
name = "a" alt_name = "b"
Format Date-Time Tidak Valid
Date-time TOML mengikuti RFC 3339. Tanggal memerlukan tahun 4-digit penuh, bulan 2-digit, dan hari 2-digit; date-time memerlukan pemisah T (atau spasi). Tanggal yang salah bentuk gagal diuraikan.
released = 2026-7-2
released = 2026-07-02
Kurung Penutup Hilang
Larik, tabel inline, dan header tabel harus ditutup. [ atau { yang tidak ditutup menghasilkan kesalahan penguraian yang menunjuk baris dan kolom tempat masalah terdeteksi.
ports = [8001, 8002
ports = [8001, 8002]
Bilangan Bulat di Luar Rentang Aman
Bilangan bulat TOML adalah 64-bit, tetapi angka JSON di browser dibatasi hingga 2^53 - 1. Nilai di luar itu dibulatkan selama konversi dan peringatan ditampilkan. Simpan bilangan bulat sangat besar sebagai string berkutip agar tetap persis.
snowflake = 1420070400000000000
snowflake = "1420070400000000000"
Mendefinisikan Ulang Tabel
Setelah tabel seperti [servers] didefinisikan, Anda tidak dapat membukanya lagi dengan header yang sama. Untuk memiliki beberapa entri, gunakan larik tabel ([[servers]]) sebagai gantinya, yang menjadi larik objek JSON.
[servers] name = "a" [servers] name = "b"
[[servers]] name = "a" [[servers]] name = "b"
Kasus Penggunaan Umum
- Metadata Cargo Rust
- Konversi Cargo.toml ke JSON untuk membangun dasbor dependensi, mengaudit versi dan fitur crate, atau memasok data manifes ke skrip dan CI yang mengharapkan JSON alih-alih TOML.
- Konfigurasi Proyek Python
- Konversi pyproject.toml ke JSON untuk memeriksa metadata proyek PEP 621, mengekstrak daftar dependensi, atau menggerakkan perkakas yang membaca konfigurasi pemaketan secara programatis.
- Inspeksi Konfigurasi Deployment
- Konversi netlify.toml, foundry.toml, atau konfigurasi platform lain ke JSON untuk mengaudit pengalihan, header, dan pengaturan build, atau untuk menghasilkan konfigurasi setara untuk platform berbeda.
- Migrasi Format Konfigurasi
- Konversi konfigurasi aplikasi TOML ke JSON saat berpindah ke sistem yang lebih menyukai JSON, atau sebagai langkah antara sebelum transformasi lanjut dengan perkakas JSON seperti jq.
- Pengaturan Situs Statis
- Konversi config.toml Hugo ke JSON untuk memigrasikan pengaturan situs, membandingkan konfigurasi antar lingkungan, atau membangun UI pengaturan yang didukung JSON.
- Input API dan Skrip
- Ubah TOML yang ditulis manusia menjadi JSON yang dapat dikonsumsi langsung oleh REST API, fungsi serverless, atau skrip otomasi, menjembatani konfigurasi yang mudah dibaca dan input mesin.
Detail Teknis
- Penguraian TOML 1.0.0 via smol-toml
- TOML diuraikan dengan pustaka smol-toml, parser tanpa-dependensi yang sepenuhnya sesuai TOML 1.0.0. Ia menangani dengan benar tabel bersarang, kunci bertitik, tabel inline, larik tabel, string multi-baris, dan keempat tipe date-time, serta melaporkan kesalahan penguraian dengan posisi baris dan kolom.
- Penanganan Date-Time Tanpa Kehilangan dan Bilangan Bulat Aman
- Date-time TOML diserialisasi menjadi string JSON yang mempertahankan jenis persisnya (offset date-time, local date-time, tanggal lokal, waktu lokal). Bilangan bulat di luar rentang aman JavaScript (2^53 - 1) dipromosikan ke BigInt selama penguraian, lalu dikonversi ke angka JSON terdekat dengan peringatan presisi, jadi TOML valid tidak pernah gagal dikonversi.
- 100% Berbasis Browser — Tanpa Unggah, Tanpa Server
- Semua pemrosesan terjadi di mesin JavaScript browser Anda. Tidak ada data yang dikirim kapan pun. Input lebih besar dari 200KB beralih dari mode langsung ke manual (klik Konversi eksplisit) untuk menjaga antarmuka tetap responsif.
Praktik Terbaik
- Simpan Bilangan Bulat Sangat Besar sebagai String
- Jika TOML Anda memiliki bilangan bulat di luar 2^53 - 1 (ID Snowflake, stempel waktu nanodetik, penghitung besar), kutip sebagai string sebelum mengonversi. Angka JSON di browser tidak dapat menampungnya secara persis, dan alat akan memperingatkan Anda saat harus membulatkan.
- Utamakan Indentasi 2-Spasi untuk Output JSON
- Indentasi dua spasi adalah konvensi yang paling banyak digunakan untuk JSON dan menghasilkan output bersih dan mudah dibaca yang cocok dengan sebagian besar pemformat dan alat diff. Simpan indentasi 4-spasi untuk saat panduan gaya menuntutnya.
- Validasi Output JSON Sebelum Menggunakannya
- Setelah mengonversi, jika Anda berencana menyunting JSON secara manual atau memasoknya ke tempat yang ketat, jalankan melalui Pemformat JSON kami untuk memastikan valid dan diformat konsisten.
- Simpan Komentar TOML Secara Terpisah
- JSON tidak memiliki sintaks komentar, jadi komentar # TOML dihilangkan saat konversi. Jika komentar adalah dokumentasi penting, simpan TOML asli di kontrol versi bersama JSON yang dihasilkan.
- Gunakan Larik Tabel untuk Bagian Berulang
- Saat Anda memiliki beberapa bagian serupa (servers, redirects, bins), tulis sebagai larik tabel ([[section]]) alih-alih mengulang [section]. Mereka dikonversi menjadi larik objek JSON yang bersih alih-alih menyebabkan kesalahan tabel-duplikat.
Pertanyaan yang Sering Diajukan
Bagaimana cara mengonversi TOML ke JSON online?
Apa itu TOML dan mengapa mengonversinya ke JSON?
Bagaimana tanggal dan waktu TOML direpresentasikan dalam JSON?
Apakah alat ini menangani Cargo.toml dan pyproject.toml?
Bagaimana tabel dan larik tabel TOML dikonversi?
Apa yang terjadi pada bilangan bulat sangat besar saat mengonversi TOML ke JSON?
Apakah data TOML saya dikirim ke server mana pun?
Bisakah saya mengonversi JSON kembali ke TOML?
Bagaimana cara mengonversi TOML ke JSON di baris perintah?
Bagaimana cara mengonversi TOML ke JSON di Python, Rust, atau Node.js?
Apakah konverter mempertahankan urutan kunci, dan bagaimana dengan komentar?
Apakah ada batas ukuran berkas untuk input TOML?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Encoder Entitas HTML Gratis — Escape HTML
Encoding & Pemformatan
Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.