Konversi TOML ke JSON Online
Konversi TOML ke JSON secara gratis di browser Anda, tanpa mengunggah file.
{
"title": "My Project",
"version": "1.0.0",
"features": [
"async",
"json"
],
"dependencies": {
"serde": "1.0",
"tokio": "1.28"
},
"authors": [
{
"name": "John",
"email": "john@example.com"
}
]
}Kasus penggunaan
TOML ke JSON untuk tooling, validasi, dan API
Validasi JSON Schema
Validasikan Cargo.toml, pyproject.toml, atau konfigurasi TOML apa pun menggunakan JSON Schema dan ajv.
Akses terprogram
Baca konfigurasi TOML dari Python, Node.js, atau alat apa pun yang berbicara JSON.
Debugging TOML
Visualisasikan struktur file TOML yang kompleks sebagai pohon objek JSON yang setara.
100% privat
Konversi berjalan di browser Anda. Konfigurasi dan kode Anda tidak pernah meninggalkan perangkat Anda.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempel atau unggah TOML Anda
Tempelkan konten Cargo.toml, pyproject.toml, atau file TOML apa pun. Tanpa pendaftaran.
Konversi dan validasi
TOML diurai dan divalidasi, lalu dikonversi ke JSON yang terformat di browser Anda.
Salin atau unduh JSON
JSON siap untuk API, tooling, validasi JSON Schema, atau pemrosesan terprogram.
FAQ
Ada pertanyaan?
TOML sangat baik untuk konfigurasi yang ditulis manusia, tetapi ekosistem tooling perangkat lunak seperti API, skrip, validator, dan editor terutama berbicara JSON. Mengonversi TOML ke JSON memungkinkan Anda: memvalidasi struktur file konfigurasi dengan JSON Schema menggunakan alat seperti ajv atau jsonschema, membaca Cargo.toml atau pyproject.toml dari skrip Python atau Node.js menggunakan JSON.parse, mengintegrasikan data konfigurasi TOML ke dalam pipeline yang mengonsumsi JSON, memigrasikan konfigurasi dari sistem berbasis TOML ke yang berbasis JSON, dan mendebug struktur file TOML yang kompleks dengan melihat representasi objek yang setara.
Tabel TOML dipetakan langsung ke objek JSON. Bagian [database] dengan kunci sama nilai menjadi objek JSON dengan database sebagai kunci yang berisi objek. Notasi titik [database.server] menciptakan bersarang. Tabel inline juga dikonversi ke objek. Tipe data TOML memiliki padanan JSON langsung: string ke string, integer ke number, float ke number, boolean ke boolean, array ke array. Tanggal dan timestamp TOML yang sesuai RFC 3339 tidak memiliki padanan JSON asli dan dikonversi ke string ISO 8601.
Array tabel adalah konstruksi paling spesifik TOML tanpa padanan JSON langsung. Sintaks [[products]] dengan beberapa entri membuat array objek. Dalam JSON, ini menjadi array di bawah kunci yang sesuai. Inilah persis pola yang digunakan Cargo.toml untuk [[bin]] yaitu beberapa biner dalam workspace, [[example]], dan [[test]]. Jika Cargo.toml Anda memiliki beberapa entri [[bin]], konversi JSON menghasilkan array objek di bawah kunci bin.
Dalam Python, pustaka standar menyertakan tomllib sejak Python 3.11 sesuai PEP 680: import tomllib; with open lalu data = tomllib.load(f). Untuk versi sebelumnya, gunakan tomli dengan pip install tomli. Di Node.js tidak ada parser TOML asli, tetapi paket @iarna/toml dan smol-toml populer. Jika pipeline CI/CD Anda perlu membaca nilai dari file TOML dan parser tidak tersedia, mengonversi ke JSON terlebih dahulu memungkinkan Anda menggunakan jq, JSON.parse, atau alat standar apa pun.
JSON Schema adalah standar yang paling banyak digunakan untuk memvalidasi struktur data (Draft 7, Draft 2019-09, Draft 2020-12, dispesifikasikan oleh json-schema.org). TOML tidak memiliki sistem validasi asli yang setara. Namun, dengan mengonversi TOML ke JSON Anda dapat memvalidasinya dengan implementasi JSON Schema apa pun: ajv untuk JavaScript, jsonschema untuk Python, networknt/json-schema-validator untuk Java, dan lainnya. Ini sangat berguna untuk memvalidasi Cargo.toml atau pyproject.toml dalam pipeline CI, memverifikasi bahwa file konfigurasi aplikasi sesuai dengan skema yang diharapkan sebelum deployment, atau mendokumentasikan struktur yang diharapkan dari format konfigurasi kustom.
Komentar TOML yaitu baris yang dimulai dengan tanda pagar atau teks setelah tanda pagar pada baris data tidak memiliki representasi dalam JSON. JSON tidak mendukung komentar dalam bentuk apa pun, inilah salah satu alasan utama Python memilih TOML daripada JSON untuk pyproject.toml. Saat mengonversi TOML ke JSON, semua komentar dibuang. Jika komentar file konfigurasi Anda mengandung informasi penting seperti alasan untuk versi dependensi atau catatan migrasi, dokumentasikan di tempat lain sebelum mengonversi, karena tidak dapat dipulihkan dari JSON yang dihasilkan.
Konversi TOML ke JSON: Cargo.toml, pyproject.toml, dan validasi JSON Schema
TOML (Tom's Obvious, Minimal Language, versi 1.0.0 diterbitkan Januari 2021 oleh Tom Preston-Werner, salah satu pendiri GitHub) adalah format konfigurasi yang disukai manusia dalam beberapa ekosistem teknologi kritis, tetapi adopsinya dalam tooling pemrosesan otomatis seperti REST API, pipeline CI/CD, validator skema, editor yang mendukung intellisense, generator dokumentasi secara signifikan lebih rendah daripada JSON. Asimetri antara popularitas untuk penulisan manusia dan dukungan tooling ini menciptakan kebutuhan praktis yang berulang dan terdokumentasi dengan baik: membaca, mengubah, memvalidasi, atau memigrasikan file TOML menggunakan alat standar dari ekosistem JSON, yang merupakan format pertukaran data de facto di seluruh industri perangkat lunak modern. Cargo.toml, file manifest paket dari ekosistem Rust, kemungkinan adalah file TOML yang paling banyak dibaca di dunia: setiap dari lebih dari 140.000 crate yang diterbitkan di crates.io memilikinya sebagai persyaratan wajib, dan setiap proyek Rust memiliki setidaknya satu Cargo.toml di direktori root-nya. Mengakses metadata Cargo.toml secara terprogram adalah kebutuhan yang sering dalam pipeline otomatisasi: mengekstrak versi crate dalam skrip rilis, menghasilkan dokumentasi dependensi otomatis untuk proyek, menganalisis grafik dependensi penuh workspace Cargo, memverifikasi bahwa versi dependensi mematuhi kebijakan keamanan organisasi, atau membandingkan pohon dependensi sebelum dan sesudah upgrade. Semua operasi ini jauh lebih sederhana ketika file sumber dalam JSON.
pyproject.toml, file konfigurasi proyek Python standar yang diperkenalkan oleh PEP 518 pada Mei 2016 dan diperluas oleh PEP 517, PEP 621, dan PEP 660, berisi informasi terstruktur yang kritis untuk tooling ekosistem Python: build backend dalam bagian [build-system], metadata paket lengkap dalam [project] termasuk nama, versi, deskripsi, penulis, lisensi, klasifier PyPI, kata kunci, URL proyek, persyaratan versi Python, dependensi runtime, dan dependensi opsional. Bagian [tool.X] menyimpan konfigurasi untuk setiap alat ekosistem: [tool.ruff] untuk aturan linter dan formatter Ruff, [tool.mypy] untuk pemeriksa tipe mypy, [tool.pytest.ini_options] untuk konfigurasi pytest, [tool.black] untuk formatter Black. Alat seperti pip, build, twine, ruff, mypy, pytest, black, dan isort membaca pyproject.toml langsung menggunakan parser TOML internal mereka sendiri. Namun, jika Anda perlu menulis skrip Python atau JavaScript kustom yang membaca dan memproses beberapa file pyproject.toml, misalnya untuk mengaudit versi dependensi di seluruh monorepo, mengonversinya ke JSON memungkinkan Anda menggunakan json.load() di Python 3 atau JSON.parse() di Node.js tanpa menambahkan dependensi TOML apa pun ke skrip tersebut. Validasi struktural juga sangat diuntungkan dari konversi JSON: JSON Schema adalah standar paling matang dan paling banyak didukung untuk mendeskripsikan dan memvalidasi struktur data.
Hugo, generator situs statis berbasis Go yang dikembangkan oleh Steve Francia pada 2013, menggunakan TOML secara ekstensif baik untuk konfigurasi situs global maupun untuk front matter halaman dan posting individual yang dibatasi oleh tanda +++ di awal dan akhir file Markdown. Jika Anda perlu memigrasikan situs Hugo ke sistem manajemen konten lain seperti Contentful, Strapi, Sanity.io, atau CMS headless kustom, mengonversi file konfigurasi TOML dan front matter ke JSON adalah langkah pertama yang sangat diperlukan untuk memproses dan mengubah data secara terprogram. Netlify menggunakan netlify.toml untuk mendefinisikan secara deklaratif: perintah build dan direktori publikasi per konteks deployment, header HTTP kustom per jalur, aturan redirect dan rewrite dengan dukungan regex, konfigurasi fungsi serverless dan Edge Function, serta variabel lingkungan aman per konteks. Tooling DevOps dan platform orkestrasi yang memproses konfigurasi deployment umumnya lebih memilih JSON atau YAML sebagai format masukan, membuat konversi netlify.toml ke JSON berguna untuk integrasi infrastructure-as-code. Akhirnya, mengonversi TOML ke JSON berfungsi sebagai alat debugging dan analisis: melihat file TOML yang kompleks sebagai pohon objek JSON dengan indentasi standar dan tipe eksplisit memungkinkan Anda segera mengidentifikasi kesalahan struktural seperti bersarang tabel yang salah, nilai bertipe salah, bagian yang diduplikasi, atau array tabel yang salah format, sebelum masalah ini menyebabkan perilaku tak terduga dalam produksi.