Konverter JSON ke TOML
Tempel JSON, dapatkan TOML instan di browser. Penanganan null aman, cek tabel tingkat atas, output siap Cargo.toml & pyproject.toml. 100% privat, tanpa unggah.
Opsi · 2 spasi
Apa Itu TOML dan Mengapa Mengonversi dari JSON?
TOML (Tom's Obvious, Minimal Language) adalah format berkas konfigurasi yang dibangun agar tak ambigu dan mudah dibaca serta disunting manusia. Ini adalah format konfigurasi standar untuk ekosistem Rust (Cargo.toml), pemaketan Python modern (pyproject.toml), dan alat seperti Hugo, Netlify, Poetry, dan Foundry. JSON adalah format mesin universal yang dihasilkan alat dan API. Mengonversi JSON ke TOML umum saat Anda memiliki data terstruktur sebagai JSON tetapi membutuhkan konfigurasi TOML yang dapat disunting manusia sebagai tujuannya — menghasilkan Cargo.toml atau pyproject.toml, atau mengubah pengaturan JSON aplikasi menjadi berkas konfigurasi yang mudah dibaca.
TOML lebih terstruktur daripada JSON, dan alat ini mengubah kekakuan itu menjadi panduan alih-alih kegagalan samar:
**1. Penegakan tabel tingkat atas.** Setiap dokumen TOML adalah tabel di akar — larik atau skalar telanjang bukanlah TOML valid. Alih-alih memancarkan output rusak untuk input { larik tingkat atas }, alat ini mendeteksinya dan memberi tahu Anda persis cara membungkus data Anda di bawah kunci, jadi Anda selalu mendapat TOML valid atau penjelasan jelas.
**2. Penanganan null yang aman dan transparan.** JSON memiliki null; TOML tidak. Sebagian besar konverter entah mogok atau diam-diam membuang data. Alat ini eksplisit: kunci objek dengan nilai null dihilangkan dan kunci yang dihapus didaftar dalam peringatan, dan null di dalam larik — yang tidak memiliki representasi TOML valid — menghasilkan kesalahan presisi yang menunjuk jalur. Anda tidak pernah dikejutkan oleh data yang hilang.
**3. Output TOML idiomatik.** Objek bersarang menjadi [tabel], objek yang bersarang dalam menjadi tabel bertitik ([tool.ruff]), dan larik objek menjadi larik tabel ([[section]]) — bentuk yang digunakan berkas Cargo.toml dan pyproject.toml nyata. Konversi ditenagai oleh pustaka smol-toml tanpa-dependensi yang sesuai TOML 1.0.0.
**4. Privasi 100% berbasis browser.** JSON Anda — yang mungkin berisi kredensial, token, atau detail layanan internal — tidak pernah meninggalkan browser Anda. Tanpa unggah, tanpa server, tanpa pencatatan. Konfirmasikan di tab Jaringan browser Anda.
Butuh sebaliknya? Gunakan Konverter TOML ke JSON. Bekerja dengan format konfigurasi lain? Coba Konverter JSON ke YAML dan Konverter YAML ke JSON, atau bersihkan input JSON Anda dulu dengan Pemformat JSON. Setiap format punya ceruknya: JSON untuk pertukaran mesin, TOML untuk konfigurasi aplikasi dan perkakas yang disunting manusia, dan YAML untuk manifes infrastruktur yang bersarang dalam. Konverter ini memungkinkan Anda berpindah dari JSON ke TOML tanpa menulis kode apa pun.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Fitur Utama
Konversi Langsung
Output TOML diperbarui instan saat Anda mengetik atau menempel JSON — tanpa perlu tombol Konversi. Input besar (>200KB) otomatis beralih ke mode manual untuk menjaga browser tetap responsif.
Panduan Tabel Tingkat Atas
Dokumen TOML harus berupa tabel di akar. Jika tingkat atas JSON Anda adalah larik atau skalar, alat memberi tahu Anda persis cara membungkusnya di bawah kunci — tanpa output rusak, tanpa tebak-tebakan.
Penanganan Null yang Aman
TOML tidak memiliki null. Kunci objek dengan nilai null dihilangkan dan didaftar dalam peringatan; null di dalam larik memunculkan kesalahan presisi yang menunjuk jalur. Anda selalu tahu apa yang terjadi pada data Anda.
Output TOML Idiomatik
Objek bersarang menjadi [tabel], objek yang bersarang dalam menjadi tabel bertitik ([tool.ruff]), dan larik objek menjadi larik tabel ([[section]]) — bentuk yang digunakan Cargo.toml dan pyproject.toml nyata.
Kesadaran Float dan Bilangan Bulat
TOML memisahkan bilangan bulat dari float, jadi float seperti 1.0 ditulis sebagai bilangan bulat 1. Alat memperingatkan Anda saat pemaksaan ini mengubah tipe nilai, jadi kejutan bolak-balik terlihat.
Privasi 100% Berbasis Browser
Semua penguraian berjalan lokal di browser Anda. JSON Anda — termasuk kredensial, token, dan detail layanan internal — tidak pernah diunggah, disimpan, atau dicatat.
Contoh
Sumber Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Hasilkan Cargo.toml Rust dari JSON — objek bersarang menjadi [tabel] dan objek inline menjadi tabel inline, persis seperti yang diharapkan Cargo.
Sumber pyproject.toml
{
"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"]
}
} Hasilkan pyproject.toml PEP 621 dari metadata proyek JSON — berguna saat alat atau API menghasilkan JSON yang Anda butuhkan dalam bentuk TOML.
Pengaturan aplikasi
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Konversi objek pengaturan aplikasi datar ke TOML — skalar tingkat atas tetap di atas dan objek database bersarang menjadi tabel [database].
Servers (larik tabel)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Larik objek menjadi larik tabel ([[servers]]) dalam TOML — cara idiomatik untuk mengekspresikan bagian berulang.
Sumber konfigurasi Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Ubah konfigurasi deployment JSON menjadi netlify.toml, dengan tabel [build] dan [build.environment] bersarang dan larik tabel [[redirects]].
Konfigurasi dengan struktur bertitik
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Objek JSON yang bersarang dalam menjadi tabel TOML bertitik seperti [tool.ruff] dan [tool.black] — bentuk yang diharapkan perkakas pyproject.toml.
Cara Menggunakan
- 1
Tempel JSON Anda
Masukkan atau tempel JSON Anda ke bidang input di atas. Anda juga dapat mengeklik 'Muat contoh' untuk mencoba sumber Cargo.toml, sumber pyproject.toml, atau objek pengaturan aplikasi.
- 2
Lihat Output TOML Langsung
TOML muncul instan di panel output. Jika JSON Anda memiliki larik tingkat atas atau nilai null, alat menjelaskan persis apa yang harus dilakukan alih-alih menghasilkan output rusak.
- 3
Salin atau Unduh
Klik Salin untuk mengambil TOML ke papan klip Anda, atau Unduh untuk menyimpannya sebagai berkas .toml yang siap untuk Cargo, Poetry, Hugo, Netlify, atau alat apa pun yang membaca TOML.
Jebakan JSON-ke-TOML Umum
Larik atau Skalar Tingkat Atas
Dokumen TOML harus berupa tabel (objek) di akar. Larik JSON atau nilai tunggal tidak dapat menjadi dokumen TOML. Bungkus di bawah kunci untuk mengonversinya.
[1, 2, 3]
{ "items": [1, 2, 3] } Nilai Null dalam Objek
TOML tidak memiliki tipe null, jadi kunci objek dengan nilai null dihilangkan selama konversi. Alat memperingatkan Anda kunci mana yang dihapus. Jika Anda perlu menjaga kunci, beri nilai nyata atau string kosong.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null di Dalam Larik
Larik TOML tidak dapat berisi null atau celah, jadi JSON seperti [1, null, 3] tidak memiliki output TOML valid. Hapus null atau ganti dengan nilai nyata sebelum mengonversi.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Sintaks JSON Tidak Valid
Input harus berupa JSON valid dulu. Koma di akhir, tanda kutip tunggal, dan kunci tanpa kutip adalah kesalahan umum yang disalin dari JavaScript yang bukan JSON valid dan harus diperbaiki sebelum mengonversi.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Float dengan Pecahan Nol Menjadi Bilangan Bulat
TOML menulis float yang bagian pecahannya nol (1.0) sebagai bilangan bulat 1, mengubah tipenya pada bolak-balik. Alat memperingatkan Anda. Jika nilai secara konseptual bilangan bulat, ini baik-baik saja; jika harus tetap float, TOML tidak dapat mempertahankannya untuk bilangan bulat.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Mencampur Objek dan Larik pada Kunci yang Sama
Kunci JSON harus konsisten sebagai objek atau larik untuk memetakan ke tabel atau larik tabel. Bentuk yang tidak konsisten di seluruh set data dapat menghasilkan TOML yang membingungkan — normalkan struktur dulu.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Kasus Penggunaan Umum
- Hasilkan Cargo.toml
- Ubah JSON terstruktur — dari alat scaffolding, API, atau skrip — menjadi Cargo.toml Rust valid, dengan tabel [dependencies] bersarang dan tabel inline dihasilkan otomatis.
- Hasilkan pyproject.toml
- Konversi metadata proyek JSON menjadi pyproject.toml PEP 621, termasuk tabel [tool.*] bertitik, jadi perkakas yang memancarkan JSON dapat menghasilkan konfigurasi pemaketan Python.
- Konfigurasi yang Dapat Disunting Manusia dari JSON
- Transformasikan pengaturan JSON aplikasi menjadi berkas konfigurasi TOML yang mudah dibaca yang dapat disunting manusia dengan nyaman, dengan komentar ditambahkan setelahnya secara manual.
- Pembuatan Konfigurasi Deployment
- Hasilkan netlify.toml, foundry.toml, atau konfigurasi platform serupa dari JSON, mengubah objek bersarang dan larik objek menjadi tabel dan larik tabel yang diharapkan alat tersebut.
- Migrasi Format Konfigurasi
- Pindahkan konfigurasi dari sistem berbasis JSON ke berbasis TOML, menggunakan konverter ini sebagai jembatan dan peringatan null serta tingkat atas untuk menangkap apa pun yang tidak akan terpetakan.
- Membuat Prototipe Struktur TOML
- Sketsa konfigurasi sebagai JSON — format yang diketik lancar oleh sebagian besar pengembang — lalu konversi ke TOML untuk melihat tata letak tabel dan larik-tabel idiomatik sebelum menyerahkannya ke repo.
Detail Teknis
- Penguraian JSON RFC 8259
- Input JSON diuraikan dengan JSON.parse() asli browser, yang sepenuhnya sesuai RFC 8259. Sebelum serialisasi, alat memeriksa bahwa nilai tingkat atas adalah objek dan memindai nilai null sehingga dapat memperingatkan tentang kunci objek yang dihilangkan atau menolak null di dalam larik dengan jalur presisi.
- Output TOML 1.0.0 via smol-toml
- TOML dihasilkan dengan pustaka smol-toml, serializer tanpa-dependensi yang sepenuhnya sesuai TOML 1.0.0. Objek bersarang menjadi tabel, objek yang bersarang dalam menjadi tabel bertitik, dan larik objek menjadi larik tabel. Float dengan bagian pecahan nol ditulis sebagai bilangan bulat sesuai aturan TOML, dengan peringatan.
- 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
- Bungkus Larik Tingkat Atas di Bawah Kunci
- Jika data Anda secara alami adalah larik JSON, bungkus dalam objek dengan kunci deskriptif ({ "items": [...] }) sebelum mengonversi. Dokumen TOML harus berupa tabel di akar, dan kunci memberi larik Anda nama yang jelas di output.
- Putuskan Apa Arti Null
- Sebelum mengonversi, putuskan apakah bidang null harus hilang (menghapus kunci) atau membawa nilai. TOML akan menghilangkan null objek dan menolak null larik, jadi menyelesaikannya di JSON Anda dulu memberi output yang dapat diprediksi dan lengkap.
- Gunakan Objek Bersarang untuk Pengelompokan
- Kelompokkan pengaturan terkait ke objek bersarang di JSON Anda — mereka menjadi [tabel] dan tabel bertitik yang bersih di TOML, yang jauh lebih mudah dibaca daripada daftar kunci datar, sesuai dengan cara konfigurasi Cargo dan pyproject diorganisasi.
- Validasi JSON Anda Dulu
- Jika JSON Anda ditulis tangan atau berasal dari sumber yang tidak andal, validasi dengan Pemformat JSON kami untuk menangkap koma di akhir dan kesalahan kutip sebelum mengonversi ke TOML.
- Tambahkan Komentar Setelah Mengonversi
- JSON tidak memiliki komentar, jadi tidak ada yang terbawa. Karena TOML mendukung komentar #, tambahkan dokumentasi ke TOML yang dihasilkan secara manual — salah satu alasan utama untuk memindahkan konfigurasi yang disunting manusia ke TOML sejak awal.
Pertanyaan yang Sering Diajukan
Bagaimana cara mengonversi JSON ke TOML online?
Apa itu TOML dan mengapa mengonversi JSON ke sana?
Mengapa tingkat atas JSON saya harus berupa objek?
Apa yang terjadi pada nilai null saat mengonversi JSON ke TOML?
Bagaimana objek dan larik bersarang dikonversi ke TOML?
Apa yang terjadi pada angka titik-mengambang seperti 1.0?
Apakah data JSON saya dikirim ke server mana pun?
Bisakah saya mengonversi TOML kembali ke JSON?
Bagaimana cara mengonversi JSON ke TOML di baris perintah?
Bagaimana cara mengonversi JSON ke TOML di Python, Rust, atau Node.js?
Apakah konverter mempertahankan urutan kunci?
Apakah ada batas ukuran berkas untuk input JSON?
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.