TOML to JSON Dönüştürücü
TOML yapıştırın, tarayıcınızda anında JSON alın. Cargo.toml ve pyproject.toml hazır, tarih ve iç içe tablolar doğru işlenir. %100 çevrimiçi, yükleme yok.
Seçenekler · 2 boşluk
TOML Nedir ve Neden JSON'a Dönüştürülür?
TOML (Tom's Obvious, Minimal Language), Tom Preston-Werner tarafından kesin, insanların okuması kolay ve önemsiz biçimde bir karma tabloya eşlenebilir olacak şekilde oluşturulmuş bir yapılandırma dosyası biçimidir. Rust ekosistemi (Cargo.toml), modern Python paketleme (pyproject.toml, PEP 518 ve PEP 621'de standartlaştırılmış) ve Hugo, Netlify, Poetry ve Foundry gibi araçlar için varsayılan yapılandırma biçimi haline gelmiştir. JSON ise evrensel makine değişim biçimidir — her dil onu ayrıştırır, her API onu konuşur. Bu nedenle TOML'u JSON'a dönüştürmek yaygın bir görevdir: yapılandırmayı okunabilir TOML olarak yazarsınız, sonra bir programı beslemek, JSON araçlarıyla incelemek veya bir işlem hattında karşılaştırmak için JSON'a dönüştürürsünüz.
Bu araç, doğruluk açısından önemli olan birkaç ayırt edici özelliğe sahiptir:
**1. Tarih-saat sadakati.** TOML, JSON'un tamamen eksik olduğu birinci sınıf tarih ve saat türlerine sahiptir — ofsetli tarih-saat, yerel tarih-saat, yerel tarih ve yerel saat. Naif dönüştürücüler bunların hepsini ISO zaman damgalarına düzleştirir, böylece 1979-05-27 gibi yerel bir tarih, sessizce bir saat ve saat dilimi uydurarak 1979-05-27T00:00:00Z olur. Bu araç, tam TOML türünü korur: yerel tarihler takvim tarihleri, yerel saatler saatler olarak kalır ve yalnızca ofsetli tarih-saatler bir saat dilimi taşır. Bu, verinizi dürüst ve gidiş-dönüşleri kayıpsız tutar.
**2. Tam TOML 1.0.0 desteği.** İç içe tablolar, noktalı anahtarlar, satır içi tablolar ve tablo dizileri ([[section]]), sıfır bağımlılıklı smol-toml kütüphanesi kullanılarak TOML 1.0.0 belirtimine göre doğru biçimde ayrıştırılır. Karışık satır içi ve standart tablolara sahip gerçek Cargo.toml ve pyproject.toml dosyaları, belirtimin gerektirdiği gibi tam olarak dönüştürülür.
**3. Dürüst büyük tam sayı işleme.** TOML tam sayıları 64 bittir, ancak tarayıcı JavaScript'i tam sayıları yalnızca 2^53 - 1'e kadar tam olarak tutabilir. Büyük bir değeri sessizce bozmak veya çökmek yerine, bu araç en yakın JSON sayısına dönüştürür ve sizi uyarır, böylece değeri bunun yerine bir dize olarak saklamayı seçebilirsiniz. Temel bir tarayıcı kısıtlaması hakkındaki bu dürüstlük, çoğu dönüştürücünün üstünden geçtiği bir şeydir.
**4. %100 tarayıcı tabanlı gizlilik.** TOML'unuz — kayıt defteri belirteçleri, dahili paket kaynakları veya dağıtım gizli anahtarları içerebilir — tarayıcınızdan asla ayrılmaz. Yükleme yok, sunucu yok, günlük yok. Bunu tarayıcınızın Ağ sekmesinde doğrulayabilirsiniz.
Ters yönü mü istiyorsunuz? JSON to TOML Dönüştürücü aracını kullanın. Diğer yapılandırma biçimleri arasında dönüştürüyor musunuz? JSON to YAML Dönüştürücü ve YAML to JSON Dönüştürücü araçlarını deneyin veya JSON çıktınızı önce JSON Biçimlendirici ile doğrulayıp güzelce yazdırın. TOML, JSON ve YAML'ın her birinin bir yeri vardır: insan tarafından düzenlenen uygulama yapılandırması için TOML, makine değişimi için JSON ve derin iç içe altyapı manifestoları için YAML. Bu dönüştürücü, ilk ikisi arasında tek bir kod satırı olmadan geçiş yapmanızı sağlar.
// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';
const toml = `
[package]
name = "my-app"
version = "1.0.0"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;
const data = parse(toml);
const json = JSON.stringify(data, null, 2);
console.log(json);
// {
// "package": { "name": "my-app", "version": "1.0.0" },
// "dependencies": {
// "serde": { "version": "1.0", "features": ["derive"] }
// }
// } Temel Özellikler
Canlı Dönüştürme
JSON çıktısı, TOML yazarken veya yapıştırırken anında güncellenir — Dönüştür düğmesi gerekmez. Büyük girişler (>200KB) tarayıcıyı yanıt verir tutmak için otomatik olarak manuel moda geçer.
Tarih-Saat Sadakati
TOML ofsetli tarih-saatleri, yerel tarih-saatleri, yerel tarihleri ve yerel saatleri, orijinal türü koruyan JSON dizelerine dönüştürülür — uydurma gece yarısı zaman damgaları yok, böylece gidiş-dönüşler kayıpsız kalır.
Tam TOML 1.0.0 Desteği
İç içe tablolar, noktalı anahtarlar, satır içi tablolar ve tablo dizileri ([[section]]), sıfır bağımlılıklı smol-toml motoruyla, TOML 1.0.0 belirtimine uygun biçimde doğru olarak ayrıştırılır.
Cargo.toml ve pyproject.toml Hazır
Gerçek dünyadaki en yaygın TOML dosyaları için optimize edilmiştir — Rust manifestleri ve Python paketleme yapılandırmaları — satır içi tablolar ve tablo dizileri dahil. Üretilen tam JSON yapısını görmek için bir örnek yükleyin.
Dürüst Büyük Tam Sayı Uyarıları
JavaScript'in güvenli aralığının (2^53) ötesindeki tam sayılar JSON'da tam olarak temsil edilemez — araç bunları en yakın sayıya dönüştürür ve değeri sessizce bozmak yerine sizi uyarır.
%100 Tarayıcı Tabanlı Gizlilik
Tüm ayrıştırma tarayıcınızda yerel olarak çalışır. TOML'unuz — kayıt defteri belirteçleri, özel paket kaynakları ve dağıtım gizli anahtarları dahil — asla yüklenmez, saklanmaz veya günlüğe kaydedilmez.
Örnekler
Cargo.toml (Rust)
[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
criterion = "0.5"
[[bin]]
name = "my-app"
path = "src/main.rs" Bir Rust Cargo.toml manifest dosyasını JSON'a dönüştürün — araç geliştirme, bağımlılık panoları veya JSON bekleyen betiklere cargo meta verisi beslemek için kullanışlıdır.
pyproject.toml (Python)
[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "my-package" version = "0.3.1" requires-python = ">=3.10" dependencies = [ "requests>=2.31", "pydantic>=2.0" ] [project.optional-dependencies] dev = ["pytest>=8.0", "ruff>=0.4"] [tool.ruff] line-length = 100
Proje meta verisini, bağımlılıkları ve araç yapılandırmasını programatik olarak incelemek için bir PEP 621 pyproject.toml dosyasını JSON'a dönüştürün.
netlify.toml
[build] command = "npm run build" publish = "dist" [build.environment] NODE_VERSION = "20" [[redirects]] from = "/old-path" to = "/new-path" status = 301 force = true [[headers]] for = "/*" [headers.values] X-Frame-Options = "DENY"
Yönlendirmeleri ve başlıkları denetlemek veya başka bir platform için eşdeğer yapılandırma üretmek amacıyla bir Netlify derleme yapılandırmasını JSON'a dönüştürün.
Hugo config.toml
baseURL = "https://example.org" languageCode = "en-us" title = "My Hugo Site" theme = "ananke" [params] description = "A static site built with Hugo" mainSections = ["posts", "docs"] [[menu.main]] name = "Blog" url = "/posts/" weight = 1 [[menu.main]] name = "About" url = "/about/" weight = 2
Ayarları taşımak, yapılandırmayı karşılaştırmak veya bir yapılandırma arayüzünü beslemek için bir Hugo site config.toml dosyasını JSON'a dönüştürün.
rustfmt.toml
edition = "2021" max_width = 100 hard_tabs = false tab_spaces = 4 newline_style = "Unix" use_small_heuristics = "Default" reorder_imports = true reorder_modules = true
Düz bir rustfmt.toml dosyasını JSON'a dönüştürün — üst düzey anahtar-değer çiftlerinin (tablo yokken) doğrudan bir JSON nesnesine nasıl eşlendiğine iyi bir örnek.
Tarih ve tablo dizileri içeren uygulama yapılandırması
title = "Deployment Log" last_deployed = 1979-05-27T07:32:00Z release_date = 1979-05-27 maintenance_window = 02:00:00 [[servers]] name = "alpha" ip = "10.0.0.1" ports = [8001, 8002] [[servers]] name = "beta" ip = "10.0.0.2" ports = [9001]
TOML'un yerel tarih-saatlerinin (ofsetli tarih-saat, yerel tarih, yerel saat) ve tablo dizilerinin JSON dizeleri ile dizilerine nasıl temiz biçimde dönüştüğünü gösterir.
Nasıl Kullanılır
- 1
TOML'unuzu Yapıştırın
TOML'unuzu yukarıdaki giriş alanına girin veya yapıştırın. Gerçek bir Cargo.toml, pyproject.toml ya da dağıtım yapılandırmasını denemek için 'Örnek yükle'ye de tıklayabilirsiniz.
- 2
Canlı JSON Çıktısını Görün
JSON, çıktı panelinde anında görünür. Hedef biçiminize uyması için Girinti seçeneğini (2 veya 4 boşluk) ayarlayın. Tarihler, tablolar ve tablo dizileri otomatik olarak işlenir.
- 3
Kopyalayın veya İndirin
JSON'u panonuza almak için Kopyala'ya veya programınız, API'niz ya da araç geliştirmeniz için hazır bir .json dosyası olarak kaydetmek için İndir'e tıklayın.
Yaygın TOML Tuzakları
Tırnaksız Dize Değerleri
TOML'da dize değerleri tırnak içine alınmalıdır. Eşittir işaretinin sağındaki çıplak bir sözcük yalnızca boole değerleri (true/false), sayılar, tarihler için veya bir dizinin parçası olarak geçerlidir. Dizelerinizi çift veya tek tırnakla alın.
name = my-app
name = "my-app"
Yinelenen Anahtarlar
TOML, aynı tablo içinde aynı anahtarın iki kez tanımlanmasını ve zaten tanımlanmış bir tablonun yeniden tanımlanmasını yasaklar. Bu, yapılandırma parçalarını birleştirirken yaygın bir hatadır. Her anahtar ve tablo benzersiz olmalıdır.
name = "a" name = "b"
name = "a" alt_name = "b"
Geçersiz Tarih-Saat Biçimi
TOML tarih-saatleri RFC 3339'u izler. Bir tarih için tam 4 haneli yıl, 2 haneli ay ve 2 haneli gün gerekir; bir tarih-saat için T (veya boşluk) ayırıcısı gerekir. Bozuk tarihler ayrıştırılamaz.
released = 2026-7-2
released = 2026-07-02
Eksik Kapatma Parantezi
Diziler, satır içi tablolar ve tablo başlıkları kapatılmalıdır. Kapatılmamış bir [ veya {, sorunun tespit edildiği satır ve sütunu gösteren bir ayrıştırma hatası üretir.
ports = [8001, 8002
ports = [8001, 8002]
Güvenli Aralığın Ötesinde Tam Sayı
TOML tam sayıları 64 bittir, ancak tarayıcıdaki JSON sayıları 2^53 - 1 ile sınırlıdır. Bunun ötesindeki değerler dönüştürme sırasında yuvarlanır ve bir uyarı gösterilir. Çok büyük tam sayıları tam tutmak için tırnak içi dizeler olarak saklayın.
snowflake = 1420070400000000000
snowflake = "1420070400000000000"
Bir Tabloyu Yeniden Tanımlama
[servers] gibi bir tablo tanımlandıktan sonra, aynı başlıkla tekrar açamazsınız. Birden çok giriş elde etmek için, bir JSON nesne dizisine dönüşen bir tablo dizisi ([[servers]]) kullanın.
[servers] name = "a" [servers] name = "b"
[[servers]] name = "a" [[servers]] name = "b"
Yaygın Kullanım Senaryoları
- Rust Cargo Meta Verisi
- Bağımlılık panoları oluşturmak, crate sürümlerini ve özelliklerini denetlemek veya manifest verisini TOML yerine JSON bekleyen betiklere ve CI'ye beslemek için Cargo.toml'u JSON'a dönüştürün.
- Python Proje Yapılandırması
- PEP 621 proje meta verisini incelemek, bağımlılık listelerini çıkarmak veya paketleme yapılandırmasını programatik olarak okuyan araçları sürmek için pyproject.toml'u JSON'a dönüştürün.
- Dağıtım Yapılandırması İncelemesi
- Yönlendirmeleri, başlıkları ve derleme ayarlarını denetlemek veya farklı bir platform için eşdeğer yapılandırma üretmek amacıyla netlify.toml, foundry.toml ya da diğer platform yapılandırmalarını JSON'a dönüştürün.
- Yapılandırma Biçimi Geçişi
- JSON'u tercih eden bir sisteme geçerken TOML uygulama yapılandırmasını JSON'a dönüştürün veya jq gibi JSON araçlarıyla daha ileri dönüştürmeden önce bir ara adım olarak kullanın.
- Statik Site Ayarları
- Site ayarlarını taşımak, ortamlar arasında yapılandırmayı karşılaştırmak veya JSON destekli bir ayarlar arayüzü oluşturmak için Hugo config.toml'u JSON'a dönüştürün.
- API ve Betik Girişi
- İnsan tarafından yazılmış TOML'u, bir REST API'nin, sunucusuz işlevin veya otomasyon betiğinin doğrudan tüketebileceği JSON'a dönüştürerek okunabilir yapılandırma ile makine girişi arasında köprü kurun.
Teknik Ayrıntılar
- smol-toml ile TOML 1.0.0 Ayrıştırma
- TOML, sıfır bağımlılıklı, tam TOML 1.0.0 uyumlu bir ayrıştırıcı olan smol-toml kütüphanesiyle ayrıştırılır. İç içe tabloları, noktalı anahtarları, satır içi tabloları, tablo dizilerini, çok satırlı dizeleri ve dört tarih-saat türünün tümünü doğru şekilde işler ve ayrıştırma hatalarını satır ve sütun konumlarıyla bildirir.
- Kayıpsız Tarih-Saat ve Güvenli Tam Sayı İşleme
- TOML tarih-saatleri, tam türlerini (ofsetli tarih-saat, yerel tarih-saat, yerel tarih, yerel saat) koruyan JSON dizelerine seri hale getirilir. JavaScript'in güvenli aralığının (2^53 - 1) ötesindeki tam sayılar, ayrıştırma sırasında BigInt'e yükseltilir, ardından bir hassasiyet uyarısıyla en yakın JSON sayısına dönüştürülür, böylece geçerli TOML asla dönüştürülemeden kalmaz.
- %100 Tarayıcı Tabanlı — Yükleme Yok, Sunucu Yok
- Tüm işlemler tarayıcınızın JavaScript motorunda gerçekleşir. Hiçbir noktada veri iletilmez. 200KB'ın üzerindeki girişler, arayüzü yanıt verir tutmak için canlıdan manuel moda (açık bir Dönüştür tıklaması) geçer.
En İyi Uygulamalar
- Çok Büyük Tam Sayıları Dize Olarak Saklayın
- TOML'unuzda 2^53 - 1'in ötesinde tam sayılar varsa (Snowflake kimlikleri, nanosaniye zaman damgaları, büyük sayaçlar), dönüştürmeden önce bunları dize olarak tırnak içine alın. Tarayıcıdaki JSON sayıları bunları tam olarak tutamaz ve araç yuvarlaması gerektiğinde sizi uyarır.
- JSON Çıktısı İçin 2 Boşluk Girinti Tercih Edin
- İki boşluk girinti, JSON için en yaygın kullanılan kuraldır ve çoğu biçimlendirici ve karşılaştırma aracıyla iyi çalışan temiz, okunabilir bir çıktı üretir. 4 boşluk girintiyi bir stil kılavuzu gerektirdiğinde saklayın.
- Kullanmadan Önce JSON Çıktısını Doğrulayın
- Dönüştürdükten sonra, JSON'u elle düzenlemeyi veya katı bir yere beslemeyi planlıyorsanız, geçerli ve tutarlı biçimlendirilmiş olduğunu doğrulamak için JSON Biçimlendirici aracımızdan geçirin.
- TOML Yorumlarını Ayrı Tutun
- JSON'da yorum söz dizimi olmadığından, TOML # yorumları dönüştürmede atılır. Yorumlar önemli belgelemeyse, orijinal TOML'u üretilen JSON'un yanında sürüm denetiminde tutun.
- Tekrarlanan Bölümler İçin Tablo Dizileri Kullanın
- Birden çok benzer bölümünüz olduğunda (sunucular, yönlendirmeler, ikili dosyalar), bunları [section] tekrar etmek yerine tablo dizileri ([[section]]) olarak yazın. Yinelenen tablo hatasına neden olmak yerine temiz bir JSON nesne dizisine dönüşürler.
Sıkça Sorulan Sorular
TOML'u JSON'a çevrimiçi nasıl dönüştürürüm?
TOML nedir ve neden JSON'a dönüştürülür?
TOML tarih ve saatleri JSON'da nasıl temsil edilir?
Bu araç Cargo.toml ve pyproject.toml dosyalarını işler mi?
TOML tabloları ve tablo dizileri nasıl dönüştürülür?
TOML'u JSON'a dönüştürürken çok büyük tam sayılara ne olur?
TOML verim herhangi bir sunucuya gönderiliyor mu?
JSON'u tekrar TOML'a dönüştürebilir miyim?
TOML'u komut satırında JSON'a nasıl dönüştürürüm?
TOML'u Python, Rust veya Node.js'te JSON'a nasıl dönüştürürüm?
Dönüştürücü anahtar sırasını korur mu ve yorumlar ne olur?
TOML girişi için bir dosya boyutu sınırı var mı?
İlgili Araçlar
Tüm araçları görüntüleyin →Base64 Çözücü ve Kodlayıcı
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
Base64'ü Görsele Çevirme Aracı
Kodlama ve Biçimlendirme
Bir Base64 dizesini ya da data URI'yi tarayıcınızda görsele geri çözün. Önizleyin, boyutları ve MIME'ı okuyun, ardından PNG, JPG, GIF, SVG olarak indirin. Yükleme yok.
CSV'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.
.env'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
Bir .env dosyası yapıştırın, anında JSON alın. Sırlarınız tarayıcınızdan asla çıkmaz — %100 gizli, yükleme yok, ücretsiz dotenv ayrıştırıcı.
Ücretsiz HTML Varlık Çözücü — HTML Unescape
Kodlama ve Biçimlendirme
HTML varlıklarını çözün ve HTML'i çevrimiçi unescape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık & hex referansları tekrar karaktere çevirir; asla yüklenmez.
Ücretsiz HTML Varlık Kodlayıcı — HTML Escape
Kodlama ve Biçimlendirme
HTML varlıklarını kodlayın ve özel karakterleri (< > & " ') çevrimiçi escape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık veya hex çıktı; asla yüklenmez.