Skip to content

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.

Tanpa Pelacakan Berjalan di Browser Gratis
0 karakter
TOML Output
0 baris
Ditinjau untuk kepatuhan spesifikasi TOML 1.0.0, penegakan tabel tingkat atas, dan penanganan null yang transparan — Tim Rekayasa Go Tools · Jul 2, 2026

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. 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. 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. 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.

✗ Salah
[1, 2, 3]
✓ Benar
{ "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.

✗ Salah
{ "name": "a", "nickname": null }
✓ Benar
{ "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.

✗ Salah
{ "ports": [8001, null, 8003] }
✓ Benar
{ "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.

✗ Salah
{ 'name': 'a', 'active': true, }
✓ Benar
{ "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.

✗ Salah
{ "ratio": 1.0 }  →  ratio = 1
✓ Benar
{ "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.

✗ Salah
{ "server": { "a": 1 }, "server": [1] }
✓ Benar
{ "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?
Tempel JSON Anda ke bidang input di atas. Alat ini menguraikannya dan menghasilkan TOML secara instan di browser Anda — tanpa perlu klik tombol. Setelah TOML muncul di area output, klik Salin untuk menyalinnya ke papan klip Anda atau Unduh untuk menyimpannya sebagai berkas .toml. Semuanya berjalan secara lokal, jadi JSON Anda tidak pernah meninggalkan perangkat Anda. Dua hal yang perlu diketahui sebelum mulai: tingkat atas JSON Anda harus berupa objek (bukan larik), dan nilai null tidak memiliki padanan TOML — alat menjelaskan keduanya dengan jelas jika muncul.
Apa itu TOML dan mengapa mengonversi JSON ke sana?
TOML (Tom's Obvious, Minimal Language) adalah format konfigurasi yang dirancang agar mudah dibaca dan ditulis manusia, dengan semantik tak ambigu. Ini adalah format konfigurasi untuk Cargo Rust, pyproject.toml Python, Hugo, Netlify, Poetry, dan lainnya. Anda mengonversi JSON ke TOML saat alat atau API memberi Anda JSON tetapi tujuannya mengharapkan TOML — misalnya, menghasilkan Cargo.toml atau pyproject.toml dari data terstruktur, atau mengubah pengaturan JSON aplikasi menjadi berkas konfigurasi TOML yang dapat disunting manusia.
Mengapa tingkat atas JSON saya harus berupa objek?
Dokumen TOML selalu berupa tabel (sekumpulan pasangan kunci-nilai) di akar — spesifikasi tidak mengizinkan larik, string, atau angka telanjang di tingkat atas. Jadi larik JSON seperti [1, 2, 3] atau nilai tunggal seperti 42 tidak dapat dikonversi langsung. Perbaikannya adalah membungkusnya di bawah kunci: { "items": [1, 2, 3] } dikonversi dengan rapi menjadi items = [1, 2, 3]. Alat ini mendeteksi tingkat atas non-objek dan memberi tahu Anda persis cara membungkusnya, alih-alih menghasilkan output rusak.
Apa yang terjadi pada nilai null saat mengonversi JSON ke TOML?
TOML tidak memiliki tipe null, jadi null tidak dapat direpresentasikan. Alat ini menanganinya secara aman dan transparan dengan dua cara. Saat null muncul sebagai nilai objek, TOML sekadar menghilangkan kunci itu — dan alat menampilkan peringatan yang mendaftar persis kunci mana yang dihilangkan, jadi Anda tidak pernah dikejutkan oleh kehilangan data diam-diam. Saat null muncul di dalam larik, tidak ada output TOML valid sama sekali (larik tidak dapat menampung celah), jadi alat melaporkan kesalahan yang menunjuk jalur persis null yang bermasalah. Dengan cara mana pun, Anda tahu persis apa yang terjadi dan di mana.
Bagaimana objek dan larik bersarang dikonversi ke TOML?
Objek JSON bersarang menjadi tabel TOML: { "owner": { "name": "Tom" } } menjadi [owner] dengan name = "Tom". Objek yang bersarang dalam menjadi tabel bertitik seperti [tool.ruff]. Larik objek menjadi larik tabel yang ditulis dengan kurung ganda ([[servers]]), yang merupakan cara TOML idiomatik untuk mengekspresikan bagian berulang. Larik skalar tetap inline sebagai larik (ports = [8001, 8002]). Output mengikuti spesifikasi TOML 1.0.0.
Apa yang terjadi pada angka titik-mengambang seperti 1.0?
TOML membedakan bilangan bulat dari float, dan float yang bagian pecahannya nol (seperti 1.0) ditulis sebagai bilangan bulat 1. Jadi { "version": 1.0 } menjadi version = 1. Alat menampilkan peringatan kecil saat pemaksaan ini terjadi, karena mengubah tipe nilai pada bolak-balik. Jika Anda memerlukan nilai tetap float, perbedaan itu tidak dapat dipertahankan melalui TOML untuk bilangan bulat — pertimbangkan apakah bilangan bulat memang yang Anda inginkan.
Apakah data JSON saya dikirim ke server mana pun?
Tidak. Semua penguraian dan konversi terjadi sepenuhnya di browser Anda menggunakan JavaScript. JSON Anda tidak pernah diunggah, disimpan, atau dicatat. Ini membuat alat aman untuk konfigurasi yang berisi kunci API, kredensial database, atau detail layanan internal. Anda dapat memverifikasi ini dengan membuka tab Jaringan browser Anda — menempel JSON memicu nol permintaan jaringan.
Bisakah saya mengonversi TOML kembali ke JSON?
Ya. Gunakan Konverter TOML ke JSON pendamping untuk arah sebaliknya, atau klik tombol Tukar arah di bagian atas alat ini untuk membalik input dan output di tempat. TOML ke JSON memiliki lebih sedikit batasan — ia menerima TOML valid apa pun — jadi bolak-balik JSON → TOML → JSON andal selama JSON Anda tidak memiliki null atau larik tingkat atas sejak awal.
Bagaimana cara mengonversi JSON ke TOML di baris perintah?
Opsi populer adalah alat Go 'yj' (yj -jt membaca JSON dan menulis TOML). Di Python Anda dapat menggunakan paket pihak ketiga 'tomli-w': import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). Di Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — pustaka yang sama yang digunakan alat ini. Untuk sekali pakai cepat tanpa memasang apa pun, alat browser ini adalah jalur tercepat.
Bagaimana cara mengonversi JSON ke TOML di Python, Rust, atau Node.js?
Di Python: import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). Di Rust: gunakan serde_json dan toml — let value: serde_json::Value = serde_json::from_str(&text)?; let toml = toml::to_string_pretty(&value)?. Di Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — ini persis pendekatan yang digunakan alat ini. Ingat bahwa nilai tingkat atas harus berupa objek di semua ini.
Apakah konverter mempertahankan urutan kunci?
Kunci dalam tabel dipertahankan dalam urutan aslinya, tetapi struktur TOML mensyaratkan semua pasangan kunci-nilai biasa dari tabel datang sebelum header tabel anak mana pun. Jadi skalar tingkat atas dipancarkan lebih dulu, lalu tabel dan larik tabel — konverter menyusun ulang hanya di tempat yang dituntut tata bahasa TOML. Datanya identik; hanya urutan tekstual bagian tabel yang bergeser untuk menghasilkan TOML valid.
Apakah ada batas ukuran berkas untuk input JSON?
Tidak ada batas keras, tetapi input lebih dari 200KB beralih dari konversi langsung ke mode manual: tombol Konversi muncul dan konversi berjalan hanya saat Anda mengekliknya, menjaga browser tetap responsif. Muatan konfigurasi tipikal dikonversi jauh di bawah 50 milidetik.