Konverter TOML ke JSON

Tempel TOML di kiri, dapatkan JSON di kanan. Tabel menjadi objek, array tabel menjadi array. Tanpa unggah.

  1. Tempel TOML Anda ke area teks kiri.
  2. Klik "Konversi ke JSON". Output adalah objek JSON yang mempertahankan sarang tabel.
  3. Salin hasilnya, atau unduh sebagai data.json.
  4. Nilai datetime dikonversi ke string ISO 8601; underscore di angka dilucuti.
Apa fungsinya?

Mem-parse dokumen TOML 1.0 ke objek JSON. Tabel `[section]` menjadi objek bersarang; array tabel `[[items]]` menjadi array JSON. String, integer (termasuk literal hex/oktal/biner dan underscore pengelompokan digit), float, boolean, tanggal, datetime, dan waktu semuanya memetakan ke representasi setara di JSON. Tabel inline dan array inline diratakan dengan cara yang sama.

Contoh

Input TOML:

name = "Ada"
active = true

[address]
city = "London"

Output JSON:

{
  "name": "Ada",
  "active": true,
  "address": {
    "city": "London"
  }
}

Kesalahan TOML umum dan cara memperbaikinya

TOML punya aturan lebih ketat daripada YAML atau JSON di beberapa tempat. Pola di bawah mencakup sebagian besar kegagalan parser.

  • String tanpa kutip. `name = Ada` tidak valid — nilai telanjang ditafsirkan sebagai kunci/boolean/angka, bukan string. Gunakan kutip ganda: `name = "Ada"`.
  • Array tipe campuran (TOML 0.x). TOML 0.5 melarang tipe campuran dalam array; TOML 1.0 memperbolehkan. @iarna/toml mengikuti 1.0, jadi `[1, "two"]` valid di sini. Jika TOML Anda harus round-trip melalui tooling 0.5, jaga array tetap homogen.
  • Mendefinisikan ulang tabel. Mendefinisikan `[a]` dua kali adalah kesalahan. Setiap header tabel harus muncul paling banyak sekali. Gabungkan kunci ke dalam satu blok `[a]`.
  • Datetime tanpa zona waktu. `d = 2026-04-26T12:00:00` (tanpa Z atau offset) adalah "datetime lokal" — di-parse, tetapi JSON tidak punya konsep lokalitas. Output adalah string yang sama dengan waktu jam dinding, bukan momen UTC. Tambahkan `Z` untuk UTC: `d = 2026-04-26T12:00:00Z`.
  • Kebingungan escape kutip tiga. String multibaris dasar TOML menggunakan `"""..."""` dan memproses escape; string multibaris literal menggunakan `\'\'\'...\'\'\'` dan tidak. Mencampur aturan escape adalah kesalahan paling umum pada string multibaris.
  • Perluasan tabel inline. Tabel inline `point = {x=1, y=2}` tertutup dan mandiri — Anda tidak bisa nanti menulis `[point.z]` atau `point.z = 3`. Untuk memperluas, gunakan sintaks blok standar `[point]`.
Pertanyaan yang sering diajukan

Bagaimana datetime direpresentasikan dalam JSON?

JSON tidak punya tipe datetime native, jadi nilai menjadi string ISO 8601. Datetime offset (`2026-04-26T12:00:00Z`) dan datetime lokal (`2026-04-26T12:00:00`) keduanya diserialisasi secara literal — tetapi hanya bentuk dengan offset yang tidak ambigu di JSON.

Apakah underscore integer dipertahankan?

Tidak — TOML memperbolehkan `1_000_000` sebagai bantuan keterbacaan; parser membuang underscore dan nilai JSON adalah `1000000`. Pengelompokan murni fitur teks-sumber TOML.

Apa yang terjadi pada komentar TOML?

Mereka dibuang. Komentar TOML dimulai dengan `#`; JSON tidak punya sintaks komentar, jadi parser membuangnya. Jika perlu mempertahankannya, Anda perlu format perantara berbeda.

Apakah array tabel didukung?

Ya. Blok `[[products]]` yang diulang beberapa kali menjadi array JSON di bawah kunci `products`. Setiap header `[[products]]` memperkenalkan entri array baru; baris kunci-nilai berikutnya mengisi entri itu.

Bisakah saya mengonversi file TOML yang sangat besar?

Hingga sekitar 30 MB sebelum textarea melambat. File TOML sangat besar jarang ada — sebagian besar file config jauh di bawah 1 MB.

Apakah TOML saya diunggah?

Tidak. Semua berjalan di browser Anda — data Anda di-parse oleh JavaScript di halaman ini dan tidak pernah dikirim ke server.