araç köşesi

JSON'dan TOML'a

JSON nesnesini Cargo.toml ve pyproject.toml'un kullandığı TOML biçimine çevirin; null alanlar yoluyla gösterilir

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

TOML, Rust'ın Cargo.toml'u, Python'un pyproject.toml'u ve Hugo, Netlify gibi araçların ayar dosyalarında kullanılan, insanın okuyup elle düzenleyebileceği bir yapılandırma biçimidir. Elinizdeki ayar bir JSON ise (ör. bir betiğin ürettiği ya da bir API'den gelen), onu sol panele yapıştırın; Yön "JSON → TOML" iken TOML sağ panelde oluşur. Örnekteki "package" nesnesi [package] tablosu olur; "dependencies" içinde basit değer olan reqwest = "0.12" önce yazılır, iç içe "serde" nesnesi ise [dependencies.serde] başlığını alır; "bin" dizisindeki nesneler [[bin]] başlığıyla sıralanır. TOML'da null (boş değer) olmadığı için null içeren bir alan sessizce atılmaz: araç durur ve alanın yolunu yazar (ör. "dependencies.reqwest"). JSON'un kökü dizi olamaz; TOML belgesi her zaman bir tablodur, diziyi bir anahtarın altına koymanız gerekir. Yön'ü "TOML → JSON" yaparsanız aynı sayfa ters yönde çalışır ve hatalı TOML'u satır ve sütunuyla gösterir.

Bu araç json to toml, json to toml converter, convert json to toml aramalarıyla da biliniyor.

TOML nedir?

TOML (Tom's Obvious, Minimal Language), yapılandırma dosyaları için tasarlanmış bir metin biçimidir: satırlar anahtar = değer düzenindedir, [bölüm] başlıkları ayarları gruplar ve # ile yorum yazılır. Metin, sayı, doğru/yanlış, tarih-saat, dizi ve tablo türlerini tanır; boş değer (null) türü yoktur. 1.0 sürümü 2021'de yayımlandı; Cargo.toml ve pyproject.toml en bilinen kullanımlarıdır.

TOML tablosu ve tablo dizisi nedir?

TOML'da [tablo] başlığı, altındaki anahtarları bir nesnede toplar; JSON'daki iç içe nesnenin karşılığıdır ve [a.b] ile daha derine inilir. [[tablo]] başlığı ise her tekrarında listeye yeni bir nesne ekler, yani JSON'daki nesne dizisidir. Kısa nesneler { anahtar = değer } biçiminde tek satırda da yazılabilir; bu satır içi tablo sonradan başka satırda genişletilemez.

TOML ile JSON arasındaki fark nedir?

İkisi de aynı veri yapısını (nesne, dizi, metin, sayı) taşır ama farklı işe göre tasarlandı. JSON makineler arası alışveriş içindir: katı sözdizimi, yorum yok, null var. TOML insanın düzenlediği ayar dosyaları içindir: yorum yazılabilir, [bölüm] başlıkları düz bir liste gibi okunur, tarih-saat için ayrı tür vardır ama null yoktur. Bu yüzden JSON → TOML yönünde null'lar karar ister, TOML → JSON yönünde tarihler metne dönüşür.

Tuzaklar: null, sayı türü ve anahtar sırası

JSON'daki null TOML'da karşılıksızdır. Pek çok dönüştürücü bu alanı sessizce siler ve siz ayarın kaybolduğunu ancak program farklı davranınca fark edersiniz. Bu araç null gördüğü ilk alanın yolunu ve kaç alanın daha null olduğunu yazar; alanı silmek mi, boş metin "" mi, false mi vermek istediğinize siz karar verirsiniz.

JSON tam sayı ile ondalıklıyı ayırt etmez, TOML eder: JSON'da 2.0 yazılan değer JavaScript'te 2 olarak okunduğu için TOML'a tam sayı 2 geçer. Sürüm numarası gibi değerleri "1.0" biçiminde metin olarak tutun. TOML kuralı gereği basit anahtarlar tablolardan önce yazılır; bu yüzden çıktıdaki anahtar sırası JSON'dakinden farklı olabilir, anlam değişmez. 2^53'ü aşan tam sayılar JSON okunurken yuvarlanabilir; araç böyle bir sayı görürse notta uyarır.

Hangi durumda TOML, hangi durumda JSON

TOML, insanların elle düzenlediği ayar dosyaları için tasarlandı: yorum satırı (#) yazılabilir, tırnaksız anahtarlar ve [bölüm] başlıkları uzun dosyayı okunur tutar. Cargo, Poetry, uv, Ruff, Black ve Hugo gibi araçlar ayarlarını TOML'dan okur. JSON ise programlar arası veri alışverişi için daha uygundur; yorum taşımaz, ama her dilde hazır okuyucusu vardır.

Bir ayarı betikle üretip Cargo.toml ya da pyproject.toml'a eklemek istiyorsanız JSON → TOML yönünü kullanın. Bir TOML dosyasını JavaScript'e, jq'ya ya da bir API'ye vermek istiyorsanız Yön'ü değiştirin; yalnız TOML'dan JSON'a dönüşümü ve doğrulamayı öne çıkaran ayrı bir sayfa da vardır.

Sık sorulanlar

JSON nasıl TOML'a çevrilir?

JSON nesnesini bu sayfanın sol paneline yapıştırın ve Yön'ü "JSON → TOML" bırakın. İç içe nesneler [tablo] başlığına, nesne dizileri [[tablo]] başlığına dönüşür. Sonucu kopyalayın ya da .toml olarak indirin.

"TOML'da null yoktur" hatası ne demek?

TOML biçiminde boş değer (null) tanımlı değildir. JSON'unuzda değeri null olan bir alan var ve araç onu sessizce silmek yerine size gösteriyor. Hata metnindeki yoldaki alanı silin ya da ona bir değer verin (boş metin "", 0 ya da false gibi), sonra yeniden deneyin.

Kökü dizi olan JSON neden TOML'a çevrilmiyor?

Bir TOML belgesi her zaman anahtar = değer çiftlerinden oluşan bir tablodur; kökte isimsiz bir liste duramaz. Diziyi bir anahtarın altına alın, ör. {"kayitlar": [ ... ]}; o zaman her kayıt [[kayitlar]] başlığıyla yazılır.

Verilerim bir sunucuya gönderiliyor mu?

Hayır. Dönüşüm tamamen tarayıcınızda, sayfaya gömülü açık kaynak TOML okuyucusuyla yapılır; parola ya da erişim anahtarı içeren bir ayar dosyası bile bu sayfadan çıkmaz. Sayfa yüklendikten sonra internet bağlantısı olmadan da çalışır.