ToolDeck

TOML'den JSON'a

TOML'u JSON formatına dönüştür

Örnek dene

TOML Girdi

JSON Çıktı

Yerel olarak çalışır · Gizli bilgi yapıştırmak güvenlidir
JSON çıktısı burada görünecek…
Bunu da deneyin:TOML Biçimlendirici

TOML'den JSON'a Dönüşüm Nedir?

TOML (Tom's Obvious Minimal Language), insanlar için tasarlanmış bir yapılandırma dosyası formatıdır. Hash tablosuna belirsizlik olmadan eşlenir; iç içe tabloları, tipli değerleri ve satır içi yorumları destekler. Pek çok araç ve çerçeve, TOML'u birincil yapılandırma formatı olarak kullanır: Rust projeleri Cargo.toml'a güvenir, Python paketleme pyproject.toml'ı kullanır, Hugo statik siteleri config.toml aracılığıyla yapılandırılır. TOML'u çevrimiçi JSON'a dönüştürmek, bu yapılandırma dosyalarını hemen hemen her programlama dilinin, API'nin ve veri hattının yerel olarak tüketebileceği bir formata dönüştürmenizi sağlar.

RFC 8259 ile tanımlanan JSON (JavaScript Object Notation), en yaygın desteklenen veri alışverişi formatıdır. TOML minimal sözdizimi ve yorum desteğiyle insan okunabilirliğini önceliklendirirken, JSON makine birlikte çalışabilirliğini önceliklendirmektedir. TOML'den JSON'a dönüştürücü, TOML girişini TOML v1.0.0 spesifikasyonuna göre ayrıştırarak yapısal olarak eşdeğer bir JSON belgesi üretmek suretiyle bu boşluğu kapatır. Dönüşüm tüm verileri korur: dizgeler, tamsayılar, ondalık sayılar, boolean'lar, diziler ve tablolar doğrudan JSON karşılıklarına eşlenir.

TOML'un JSON'ın doğrudan temsil edemediği dört yerel tarih/saat türü vardır: offset datetime, yerel datetime, yerel tarih ve yerel saat. JSON'un tarih türü olmadığından bu değerler dönüşüm sırasında ISO 8601 dizgeleri olarak serileştirilir.

Neden TOML'den JSON'a Dönüştürücü Kullanmalısınız?

TOML ile yazılmış yapılandırma dosyalarının genellikle yalnızca JSON kabul eden sistemlere beslenmesi gerekir. Dosyayı elle yeniden yazmak veya yerel olarak bir ayrıştırıcı kütüphanesi kurmak yerine, tarayıcı tabanlı bir dönüştürücü dönüşümü saniyeler içinde gerçekleştirir.

🔒
Gizlilik Öncelikli İşlem
TOML verileriniz tamamen tarayıcıda ayrıştırılır ve dönüştürülür. Hiçbir şey sunucuya yüklenmez; bu da API anahtarları, veritabanı kimlik bilgileri veya iç ana makine adları içeren yapılandırma dosyalarını dönüştürmek için güvenli kılar.
Anında Dönüşüm
TOML'u yapıştırın ve biçimlendirilmiş JSON çıktısını hemen alın. Tek seferlik bir format dönüşümü yapmak için Node.js paketleri, Python kütüphaneleri veya CLI araçları yüklemenize gerek yoktur.
🔀
Tam TOML v1.0.0 Desteği
Dönüştürücü; noktalı anahtarlar, satır içi tablolar, tablo dizileri, çok satırlı dizgeler ve tarih-saat değerleri dahil olmak üzere tüm TOML veri tiplerini işler. Manuel dönüşümde sorun yaratacak uç durumlar doğru biçimde yönetilir.
📋
Hesap Gerekmez
Sayfayı açın, TOML'u yapıştırın ve JSON sonucunu kopyalayın. Kayıt yok, hız sınırı yok ve kullanım takibi yok. Araç her ziyaretinizde aynı şekilde çalışır.

TOML'den JSON'a Kullanım Senaryoları

Frontend Geliştirme
Bir Rust WASM projesinin Cargo.toml meta verilerini, bir JavaScript derleme betiği veya package.json oluşturma adımı tarafından tüketilmek üzere JSON'a dönüştürün.
Backend Mühendisliği
TOML ile yazılmış uygulama yapılandırmalarını, AWS Lambda ortam değişkenleri veya Docker konteyner etiketleri gibi JSON yapılandırması gerektiren ortamlara enjekte etmek için JSON'a dönüştürün.
DevOps ve CI/CD
GitHub Actions ve GitLab CI gibi pipeline araçları genellikle JSON girdileriyle çalışır. TOML tabanlı araç yapılandırmalarını (rustfmt.toml, taplo.toml) linting veya doğrulama adımları için JSON'a dönüştürün.
QA ve Test
TOML kaynak dosyalarından JSON test fikstürleri oluşturun. TOML, yorum desteği ve okunabilir sözdizimi sayesinde test verisi kaynağı olarak yönetimi daha kolaydır; ancak test çerçeveleri genellikle JSON girdisi bekler.
Veri Mühendisliği
Sistemler arasında yapılandırma taşınırken, bir platformdaki TOML dosyaları (örn. InfluxDB, Telegraf) başka bir platformun API'si veya içe aktarma aracı için JSON belgeleri haline getirilebilir.
Öğrenme ve Eğitim
Veri formatlarını öğrenen öğrenciler, TOML örneklerini yapıştırıp tabloların nasıl iç içe nesnelere dönüştüğünü, tablo dizilerinin nasıl JSON dizileri olduğunu ve TOML'un tarih tiplerinin nasıl dizgelere eşlendiğini tam olarak görebilir.

TOML'den JSON'a Tip Eşleme Referansı

Her TOML tipinin doğrudan bir JSON karşılığı vardır; tek istisna tarih ve saat değerleridir. Aşağıdaki tablo, her TOML tipinin JSON'a nasıl dönüştüğünü göstermektedir. Bu eşleme TOML v1.0.0 spesifikasyonunu izler ve tomllib (Python), toml-rs (Rust) ve @iarna/toml (Node.js) gibi standart ayrıştırıcıların davranışıyla örtüşür.

TipTOML SözdizimiJSON Çıktısı
String"value""value"
Integer4242
Float3.143.14
Booleantrue / falsetrue / false
Offset Date-Time1979-05-27T07:32:00Z"1979-05-27T07:32:00Z"
Local Date-Time1979-05-27T07:32:00"1979-05-27T07:32:00"
Local Date1979-05-27"1979-05-27"
Local Time07:32:00"07:32:00"
Array[1, 2, 3][1, 2, 3]
Table[section]{ "section": {} }
Inline Table{ key = "val" }{ "key": "val" }
Array of Tables[[items]]"items": [{}]

TOML tamsayıları okunabilirlik için alt çizgi (ör. 1_000_000) ve onaltılık (0xDEADBEEF), sekizlik (0o755) ile ikili (0b11010110) sabitlerini destekler. Tüm bunlar JSON'da düz onluk sayılara dönüştürülür. TOML ayrıca sonsuz ve NaN ondalık değerlerini destekler; ancak bunların JSON karşılığı yoktur ve katı modda dönüşüm hatasına neden olur.

Kod Örnekleri

Dört dilde TOML'den JSON'a dönüşümün çalışan örnekleri. Her biri bir TOML dosyasını okur, ayrıştırır ve biçimlendirilmiş JSON çıktısı verir.

JavaScript (Node.js)
import { parse } from '@iarna/toml'
import fs from 'fs'

const toml = fs.readFileSync('config.toml', 'utf8')
const json = parse(toml)
console.log(JSON.stringify(json, null, 2))
// Input:  [server]
//         host = "localhost"
//         port = 8080
// Output: { "server": { "host": "localhost", "port": 8080 } }
Python
import tomllib   # Python 3.11+ (standard library)
import json

with open('config.toml', 'rb') as f:
    data = tomllib.load(f)

print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main

import (
    "encoding/json"
    "fmt"
    "os"

    "github.com/BurntSushi/toml"
)

func main() {
    var data map[string]any
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        panic(err)
    }
    out, _ := json.MarshalIndent(data, "", "  ")
    fmt.Println(string(out))
}
CLI (yj / dasel)
# Using yj (YAML/JSON/TOML converter)
cat config.toml | yj -tj

# Using dasel
dasel -f config.toml -r toml -w json

# Using Python one-liner (3.11+)
python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer), indent=2, default=str))" < config.toml

Sıkça Sorulan Sorular

Dönüşüm sırasında TOML yorumlarına ne olur?
TOML yorumları (# ile başlayan satırlar) dönüşüm sırasında atılır. JSON yorumları desteklemediğinden çıktıda bunları korumanın bir yolu yoktur. Yorumları saklamanız gerekiyorsa hedef format olarak JSONC (Yorumlu JSON) kullanmayı düşünebilirsiniz.
TOML'den JSON'a dönüşümde veri kaybı olabilir mi?
Standart TOML belgeleri için hiçbir veri kaybolmaz. Tüm dizgeler, sayılar, boolean'lar, diziler ve tabloların doğrudan JSON karşılıkları vardır. Tek dönüşüm, JSON'da ISO 8601 dizgeleri haline gelen tarih ve saat değerleridir. İki uç durum sorun yaratabilir: TOML, JSON karşılığı olmayan sonsuz ve NaN ondalık sayıları destekler; ayrıca çok büyük tamsayılar JSON ayrıştırıcı hassasiyet sınırlarını aşabilir (JavaScript'te 2^53 - 1).
TOML tablo dizileri JSON'da nasıl temsil edilir?
tomlToJsonContent.a3
Dönüşüm tersine çevrilebilir mi? JSON'dan TOML'a geri dönebilir miyim?
Yapısal olarak evet. Herhangi bir JSON nesnesi TOML tablosu olarak temsil edilebilir ve JSON dizileri TOML dizilerine eşlenir. Ancak yorumlar, noktalı anahtar gruplandırması ve satır içi tablo biçimlendirmesi gibi TOML'a özgü özellikler, ilk TOML'den JSON'a dönüşüm sırasında kaybolur ve kurtarılamaz. Gidiş-dönüş geçerli ancak potansiyel olarak daha az okunabilir TOML üretir.
Yapılandırma dosyaları için TOML ve JSON arasındaki fark nedir?
TOML yapılandırma için tasarlanmıştır: yorumları destekler, iç içe yapılar için daha okunabilir bir sözdizimi sunar, tamsayılar ve ondalık sayılar arasında ayrım yapar ve yerel tarih/saat tiplerini içerir. JSON ise programlar arasında veri alışverişi için tasarlanmıştır. JSON araçlar ve API'ler tarafından daha geniş ölçüde desteklenir; ancak TOML insanların okuması ve düzenlemesi için daha kolaydır. Pek çok proje, kaynak yapılandırma için TOML kullanır ve dağıtım için JSON'a dönüştürür.
Bu araç server.host gibi noktalı anahtarları nasıl işler?
TOML'daki noktalı anahtarlar (ör. server.host = "localhost") JSON'da iç içe nesneler oluşturur: {"server": {"host": "localhost"}}. Bu, host anahtarına sahip bir [server] tablosu tanımlamakla eşdeğerdir. Dönüştürücü noktalı anahtarları otomatik olarak tam iç içe yapılarına çözer.
TOML dosyam neden dönüştürülemiyor?
Yaygın nedenler şunlardır: dizge değerlerinin etrafına tırnak işareti koymayı unutmak (TOML bunu gerektirir), çok satırlı temel dizgeler içinde girintileme için sekme kullanmak, tekrar eden anahtar tanımları ve aynı yol için noktalı anahtarlarla açık tablo başlıklarını karıştırmak. Dönüştürücü, sorunu bulmanıza yardımcı olacak satır numarasıyla birlikte ayrıştırıcı hata mesajını görüntüler.