TOML'dan JSON'a
Rust’ın Cargo.toml’u, Python’un pyproject.toml’u, Hugo’nun config.toml’u: TOML modern yapılandırma dünyasının her yerinde, ama birçok araç hâlâ yalnızca JSON konuşuyor. TOML’u buraya yapıştırın ve düzgün biçimlendirilmiş JSON alın: [tablo] bölümleri iç içe nesnelere, [[tablo dizisi]] blokları nesne dizilerine dönüşür, tarihler ise yazıldığı gibi dize olarak geçer. Ayrıştırıcı TOML’un günlük çekirdeğini kapsar; gerçek sınırları (çok satırlı değerler, satır içi tablolar, noktalı anahtarlar) aşağıda açıkça listelenmiştir.
Dönüştürme nasıl çalışır
-
1
TOML'unuzu yapıştırın
Metni giriş kutusuna bırakın ve JSON'a Dönüştür düğmesine basın. Satırın tamamını kaplayan # yorumları otomatik olarak atlanır.
-
2
Tablolar nesneye dönüşür
`[server.database]` başlığı, noktayla ayrılan her ad için bir seviye olacak şekilde iç içe JSON nesnelerine dönüşür.
-
3
Tablo dizileri diziye dönüşür
`[[users]]` blokları, blok başına bir nesne içeren bir JSON dizisi kurar.
-
4
Skaler değerler türünü korur
Tırnaklı dizeler, sade ondalık tam sayılar ve kesirli sayılar ile true/false yerel JSON türlerine dönüşür; tarihler yazıldığı haliyle dize olarak kalır.
-
5
JSON'u kopyalayın
Sonuç 4 boşluklu girintiyle biçimlendirilir, anahtarlar özgün sırasında kalır ve kopyalanmaya hazırdır.
Türler nasıl eşlenir
| TOML değeri | JSON değeri | Örnek |
|---|---|---|
| Dize (basic veya literal) | Dize | "hello" → "hello" |
| Tam sayı (sade ondalık) | Sayı | 42 → 42 |
| Kesirli sayı (sade ondalık) | Sayı | 3.14 → 3.14 |
| Mantıksal | Mantıksal | true → true |
| Dizi (tek satır) | Dizi | [1, 2, 3] → [1, 2, 3] |
| Anahtarlı tablo | Nesne | [server] + port = 8080 → "server": {"port": 8080} |
| Tablo dizisi | Nesne dizisi | [[users]] + name = "alice" → "users": [{"name": "alice"}] |
| Tarih-saat | Dize, yazıldığı gibi | 2026-04-18T10:00:00Z → "2026-04-18T10:00:00Z" |
Çıktı her zaman 4 boşluklu girintiyle biçimlendirilir, dolayısıyla diziler ve nesneler birden çok satıra yayılır; yukarıdaki tablo okunabilirlik için değerleri tek satırda gösterir. Anahtar sırası TOML’unuzda göründüğü haliyle korunur.
Baştan sona örnek
title = "My App"
[server]
host = "localhost"
port = 8080
[[users]]
name = "alice"
admin = true
şuna dönüşür:
{
"title": "My App",
"server": {
"host": "localhost",
"port": 8080
},
"users": [
{
"name": "alice",
"admin": true
}
]
}
Desteklenen TOML ve gerçek sınırlar
Desteklenenler: noktalı bölüm adları dahil [tablo] başlıkları, [[tablo dizileri]], tek satırlık key = value çiftleri, \n, \t ve \" kaçışlarıyla basic dizeler "...", literal dizeler '...', sade ondalık tam ve kesirli sayılar, true/false, tek satırlık diziler (iç içe olabilir), satırın tamamını kaplayan # yorumları ve dize olarak geçirilen tarihler.
Desteklenmeyenler ve bunun yerine yapılacaklar:
- Çok satırlı dizeler (
"""veya''') ve çok satırlı diziler ayrıştırıcıyı hatayla durdurur. Önce değeri tek satıra alın. - Satır içi tablolar açılmaz:
point = { x = 1, y = 2 }nesne değil,"{ x = 1, y = 2 }"dizesi olarak çıkar. Bunu ayrı bir[point]bölümü olarak yeniden yazın. Cargo.toml’dakiserde = { version = "1.0" }gibi bağımlılık satırları klasik örnektir. - Eşittirin solundaki noktalı anahtarlar tek bir düz anahtar olarak kalır:
server.host = "a"iç içe yapı kurmaz,"server.host"anahtarını üretir. Bunun yerine[server]başlığı kullanın. Başlıklardaki noktalı[bolum.adlari]ise doğru şekilde iç içe geçer. - Değerden sonraki yorumlar ayıklanmaz:
port = 8080 # main,"8080 # main"dizesine dönüşür. Yorumları kendi satırlarında tutun. - Sade ondalık dışındaki sayı biçimleri tanınmaz:
1_000,0xFF,5e2,+99,infvenantırnaklı dize olarak çıkar. Bunların yerine1000,255,500,99yazın. - Basic dizelerdeki
\uXXXXkaçışları çözülmez. Bunun yerine gerçek karakteri yapıştırın.
Eksiksiz bir TOML 1.0 belgesi için toml2json gibi bir komut satırı dönüştürücüsü kullanın ya da dosyayı Python’un tomllib modülüyle yükleyip JSON’u oradan yazdırın.
Nerelerde işe yarar
- Hata ayıklarken bir TOML parçasını JSON olarak hızlıca incelemek.
- Yalnızca JSON kabul eden linter, betik veya envanter araçlarına basit yapılandırma değerleri aktarmak.
- Elle yazması daha rahat TOML notlarından test için JSON fikstürleri üretmek.
- Küçük ve düz yapılandırma dosyalarını taşımak; Hugo’nun birçok
config.tomldosyası tam olarak böyledir.
Gidiş-dönüş notları
- Yorumlar asla hayatta kalmaz: JSON’da yorum sözdizimi hiç yoktur.
- Tarihler dize olarak kalır; sonraki kodun bunları yeniden tarih nesnelerine ayrıştırması gerekir.
- Büyük sayılar: JSON metninde tam sayılar 64 bit değer olarak korunur, ancak JavaScript tarafı 2^53 üzerinde hassasiyet kaybeder. Nanosaniye zaman damgalarına ve sayısal kimliklere dikkat edin.
- Anahtar sırası bu dönüştürücüde yazıldığı gibi korunur; başka JSON araçları belgeyi yeniden yazarken anahtarları sıralayabilir.
Ters yön
JSON → TOML daha zorlu yolculuktur, çünkü JSON’da TOML’un sahip olmadığı ya da farklı ele aldığı yapılar (derin anonim iç içelik, null) vardır. Gidiş-dönüş senaryolarının çoğu TOML tarafında elle düzeltme ister.
Sık Sorulan Sorular
Hayır. JSON’da yorum sözdizimi yoktur, bu yüzden satırın tamamını kaplayan # yorumları doğrudan atlanır. Bir uyarı: değerden sonra gelen yorum ayıklanmaz; port = 8080 # main, “8080 # main” dizesine dönüşür. Dönüştürmeden önce yorumları kendi satırlarına taşıyın.
Hayır. Günlük çekirdeği kapsar: noktalı bölüm adlı tablolar, tablo dizileri, tek satırlık key = value çiftleri, tırnaklı dizeler, sade ondalık sayılar, mantıksal değerler, tek satırlık diziler ve tam satır yorumlar. Çok satırlı dizeler ve diziler, satır içi tablolar, noktalı anahtarlar ile 1_000 veya 0xFF gibi sayı biçimleri desteklenmez. Belirtimin tamamına uygun belgeler için toml2json ya da Python’un tomllib’i gibi bir CLI aracı kullanın.
Sıradan yapılandırma dosyaları anında dönüşür. Dönüştürme sunucumuzda çalıştığı için devasa belgeler istek boyutuyla sınırlıdır; birkaç megabaytlık TOML için komut satırı dönüştürücüsü daha uygundur.
Evet, bu dönüştürücü sunucu tarafında çalışır: TOML, HTTPS üzerinden sunucumuza gider, orada dönüştürülür ve aynı yanıtla geri döner. İçerik sonrasında saklanmaz; yalnızca anonim bir kullanım sayacı tutulur. Parola veya API anahtarı gibi gizli bilgileri yapıştırmaktan kaçının.
İlgili Araçlar
ASCII Tablosu Referansı
NUL, LF ve DEL dahil her kod için ondalık, onaltılık, sekizlik ve ikili değerlerle HTML sayısal karakter başvurusu gösterimini sunan tam ASCII tablosu.
HTML Karakter Referansı
HTML varlıklarının aranabilir listesi; adlandırılmış ve sayısal kodlarıyla birlikte özel karakter ve semboller için tek tıkla kopyalama.
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Klavye kısayolları başvurusu
macOS, Windows ve Linux’ta VS Code, Chrome ve GNU Readline kullanan Bash için belgelenmiş varsayılan kısayolları arayın.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
CSS Fiyat Tablosu Oluşturucu
HTML + CSS ile tek bir fiyat kartı oluşturun: paket adı, fiyat ve marka vurgu rengi. Kodu açılış sayfanıza kopyalayın.
Araç diğer dillerde mevcuttur
- TOML เป็น JSON [TH]
- TOML a JSON [ES]
- TOML na JSON [PL]
- TOMLからJSONへ [JA]
- TOML para JSON [PT]
- TOML till JSON [SV]
- TOML sang JSON [VI]
- من TOML إلى JSON [AR]
- TOML en JSON [FR]
- TOML zu JSON [DE]
- TOML ke JSON [ID]
- TOML to JSON [KO]
- TOML naar JSON [NL]
- TOML 至 JSON [ZH]
- TOML to JSON [EN]
- TOML in JSON [IT]
- TOML в JSON [RU]