Konverter JSON ke TOML
Tempel objek JSON di kiri, dapatkan TOML di kanan. Kepatuhan ketat melalui @iarna/toml. Tanpa unggah.
- Tempel objek JSON ke area teks kiri.
- Klik "Konversi ke TOML". Tingkat atas harus berupa objek JSON — bukan array.
- Salin atau unduh output TOML.
- Untuk daftar record, gunakan array tabel TOML — bungkus dengan `{ items: [...] }` dulu.
Apa fungsinya?
Mengonversi objek JSON menjadi dokumen yang patuh TOML 1.0 melalui @iarna/toml. Objek bersarang menjadi header `[section]`; array objek menjadi blok array-of-tables `[[items]]`; string, angka, boolean, dan string datetime ISO 8601 dipetakan ke primitif TOML. Output diurutkan ke urutan kanonik — kunci muncul sebelum sub-tabel untuk kompatibilitas dengan parser TOML ketat.
Contoh
Input JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} Output TOML:
name = "Ada"
active = true
[address]
city = "London" Jebakan umum JSON ke TOML
TOML punya aturan tingkat atas yang lebih ketat daripada JSON. Pola di bawah menjelaskan mengapa nilai JSON yang "seharusnya bekerja" bisa gagal.
- Array tingkat atas. TOML tidak bisa merepresentasikan array JSON tingkat atas. Bungkus: `{"items": [...]}`. Hasilnya menjadi array-of-tables TOML di bawah `[[items]]`.
- Skalar tingkat atas. Dokumen JSON telanjang `42` atau `"hello"` tidak punya kunci untuk dilekati di TOML. Bungkus dalam objek: `{"value": 42}`.
- Nilai null. TOML tidak punya tipe null. Serializer menghilangkan sepenuhnya kunci yang nilai JSON-nya null. Jika perlu merepresentasikan "secara eksplisit tidak ada", gunakan string kosong `""` atau nilai sentinel, tergantung kode hilir Anda.
- Array tipe campuran. TOML 1.0 memperbolehkan `[1, "two"]`, tetapi parser legacy 0.5 tidak. Jika TOML Anda harus round-trip melalui tooling 0.5, jaga array tetap homogen di JSON sebelum konversi.
- Kunci dengan titik di output TOML. Kunci JSON seperti `"my.key"` menjadi jalur "kunci bertitik" TOML, yang akan parser TOML interpretasikan sebagai bersarang. Untuk mempertahankan titik literal di nama kunci, serializer mengutipnya: `"my.key" = ...` — tetapi konsumen masih bisa parsing-nya sebagai jalur.
- NaN / Infinity. TOML 1.0 mendukung literal `nan`, `inf`, `-inf`. JSON tidak merepresentasikan ini — biasanya datang sebagai string `"NaN"`, `"Infinity"`, dll. Konversi manual jika butuh special float TOML asli.
Pertanyaan yang sering diajukan
Bagaimana tanggal direpresentasikan?
Tanggal JSON adalah string ISO 8601, mis. `"2026-04-26T12:00:00Z"`. Serializer menyimpannya sebagai string di TOML — bukan tipe datetime native. Untuk mendapatkan datetime TOML native, Anda harus pra-proses dan mengeluarkan nilai dengan penanda tipe yang benar di sisi JavaScript.
Apakah objek bersarang dalam diratakan?
Tidak — mereka menjadi header bersarang `[a.b.c]`. Setiap level bersarang menjadi jalur header yang dijoin dengan titik. Untuk struktur sangat dalam, output bisa punya baris header panjang; itu hanyalah cara TOML mengekspresikan kedalaman.
Apakah urutan kunci dipertahankan?
Sebagian besar. Serializer mengkanonikalisasi urutan supaya primitif datang sebelum sub-tabel (aturan TOML). Dalam setiap tier, urutan penyisipan JSON dipertahankan.
Bagaimana saya mendapatkan tabel inline TOML di output?
Anda tidak bisa — serializer selalu menggunakan header blok `[section]`, tidak pernah tabel inline. Jika butuh output inline, pasca-proses hasilnya. Tabel inline adalah fitur keterbacaan TOML, bukan bentuk data berbeda.
Apakah JSON saya diunggah?
Tidak. Semua berjalan di browser Anda — input Anda di-parse dan diserialisasi oleh JavaScript di halaman ini dan tidak pernah dikirim ke server.
Bisakah saya round-trip JSON → TOML → JSON?
Untuk tipe yang didukung (string, angka, boolean, objek bersarang, array objek), ya. Round-trip kehilangan nilai null (TOML tidak punya null) dan dapat menormalkan urutan kunci.