TOON Formatı Kopya Kağıdı

TOON
Geliştirici Araçları

JSON'un çok ayrıntılı olduğunu (tüm bu parantezleri!) ama YAML'ın biraz fazla "büyülü" ve tahmin edilemez olduğunu hissettiyseniz, TOON'a aşık olabilirsiniz. Bu format, insan tarafından okunabilirlik ile makine ayrıştırma hızı arasında benzersiz bir denge kurar. Yoğun, açık ve ayrıştırılması inanılmaz derecede hızlı olacak şekilde tasarlanmıştır.

İster veri taşıyor olun, ister yalnızca bir yapılandırma dosyasında hata ayıklamaya çalışıyor olun, bu kısa not, bilmeniz gereken temel sözdizimini kapsar.

Felsefe: Daha Az Gürültü, Daha Fazla Veri

İlk fark edeceğiniz şey TOON'un YAML'a çok benzediği ancak tam olarak JSON gibi davrandığıdır. Girinti ve yeni satırlar lehine açma ve kapama parantezlerini ortadan kaldırarak verilerinizin anında daha temiz görünmesini sağlar.

Nesneler ve Yerleştirme

JSON'da her şeyi küme parantezleri içine sarmaya alışkınsınız. TOON'da yapı girintiyle ima edilir.

JSON:

{ 
"proje": { 
"meta veriler": { 
"isim": "Alfa-Centauri", 
"durum": "etkin" 
}, 
"kilometre taşları": [ 
{ 
"aşama": "tasarım", 
"öncelik": 1 
}, 
{ 
"aşama": "test", 
"öncelik": 2 
} 
] 
} 
} 
''''

TOON:

proje: 
meta veriler: 
isim: Alpha-Centauri 
durum: aktif 
kilometre taşları[2]{aşama,öncelik}: 
tasarım,1 
test etme,2 
''''

Anahtarların özel karakterler içermediği ve hiyerarşinin görsel olarak açık olmadığı sürece tırnak işareti gerektirmediğine dikkat edin.

Dizilerin Gücü

TOON'un diğer formatlardan gerçekten ayrıldığı nokta burasıdır. TOON, dizinin uzunluğunu anahtarın kendisinde bildirmenizi gerektirir. Bu ilk başta garip görünebilir, ancak ayrıştırıcının belleği önceden tahsis etmesine olanak tanıyarak onu inanılmaz derecede hızlı hale getirir.

İlkel Diziler

Basit dizi veya sayı listeleri için TOON kompakt, virgülle ayrılmış bir sözdizimi kullanır.

Sözdizimi:

anahtar[uzunluk]:öğe1,öğe2,öğe3 
''''

Bir kök diziniz varsa (dosyanın tamamı yalnızca bir listedir), şuna benzer:

Tablo Dizileri (Öldürücü Özellik)

Bu genellikle geliştiricilerin kalbini kazanan özelliktir. Hepsi aynı anahtarları paylaşan bir dizi nesneniz varsa (veritabanındaki satırlar gibi), TOON başlıkta şemayı once tanımlamanıza ve ardından yalnızca değerleri listelemenize olanak tanır. Bu, JSON'da bulunan büyük miktardaki artıklığı ortadan kaldırır.

Sözdizimi:

anahtar[satırlar]{sütun1,sütun2}: 
''''

JSON:

{ 
"envanter": [ 
{ 
"sku": "KB-99", 
"miktar": 50, 
"koridor": 4, 
"yeniden sırala": yanlış 
}, 
{ 
"sku": "MS-12", 
"miktar": 12, 
"koridor": 7, 
"yeniden sırala": doğru 
}, 
{ 
"sku": "MN-44", 
"miktar": 8, 
"koridor": 2, 
"yeniden sırala": doğru 
} 
] 
} 
''''

TOON:

envanter[3]{sku,qty,aisle,reorder}: 
KB-99,50,4,yanlış 
MS-12,12,7, doğru 
MN-44,8,2, doğru 
''''

Bu "CSV-inside-YAML" yaklaşımı, büyük veri kümelerini inanılmaz derecede okunabilir ve kompakt hale getirir.

Karışık ve İç İçe Diziler

Bazen veriler tekdüze değildir. Diziniz farklı türde veriler (nesnelerle karışık sayılar) içeriyorsa veya karmaşık iç içe geçmiş nesneler içeriyorsa, TOON, kısa çizgi kullanan madde işareti stili sözdizimine geri döner.

Dizilerin içinde dizileriniz bile olabilir. İç dizinin aynı zamanda uzunluğunu nasıl bildirdiğine dikkat edin:

Alıntı: Ne Zaman Kullanılmalı

TOON'un en güzel yanlarından biri nadiren alıntılara ihtiyaç duymanızdır. "" içine sarmadan Merhaba 世界 👋 yazabilirsiniz. Bununla birlikte, TOON türleri (sayılar, boolean'lar) çıkarmaya çalıştığı için, tırnak işaretlerini gerektiğinde kullanmanız gereken durumlara ilişkin belirli kurallar vardır.

"Alıntı Yapılması Gerekenler" Listesi

Aşağıdaki durumlarda dizenizi çift tırnak içine almanız gerekir: ""`

  1. Bir sayıya veya boolean'a benziyor: "123" veya "true" dizesini istiyorsanız, bunu tırnak içine alın. Aksi takdirde, '123' sayısı ve boolean 'true' haline gelirler.
  1. Sınırlayıcılar içerir: Dizenizde virgül , varsa (veya etkin sınırlayıcınız her ne ise), onu tırnak içine alın.
  1. Boşluk kenarları vardır: Baştaki veya sondaki boşluklar tırnak işareti gerektirir.
  1. Özel karakterler içerir: :, ", \, [, ], {, } gibi karakterler.
  1. Boş: Boş bir dize "" olarak temsil edilir.

Örnekler:

Kaçış Dizileri

Basit tutun. TOON, dizelerin içindeki yalnızca beş kaçış dizisini tanır. Bunun dışındaki her şey geçersizdir.

  • \\ (Ters Eğik Çizgi)
  • \" (Çift tırnak)
  • \n (Yeni satır)
  • \r (Taşıma dönüşü)
  • \t (Sekme)

Gelişmiş Başlıklar ve Sınırlayıcılar

Verileriniz virgüllerle doluysa ne olur? Her alandan alıntı yapmak istemezsiniz. TOON dizi başlığındaki sınırlayıcıyı değiştirmenize olanak sağlar.

Parantezlerin veya parantezlerin içine yerleştirerek Sekme veya Boru (|) kullanabilirsiniz.

Boru Sınırlayıcı Örneği:

Başlığa | eklendiğinde ayrıştırıcı virgül yerine düz çizgileri arayacağını bilir ve sözdiziminizi temiz tutar.

Anahtar Katlama

Derin iç içe yerleştirmeniz varsa ancak yalnızca tek bir veri yolu varsa, beş kez girinti yapmanıza gerek yoktur. Yapınızı düzleştirmek için nokta gösterimini (Anahtar Katlama) kullanabilirsiniz.

Standart Yerleştirme:

kullanıcı: 
profil: 
ayarlar: 
bildirimler: 
e-posta: doğru 
sms: yanlış 
''''

Katlanmış (Temizleyici):

user.profile.settings.notifications: 
e-posta: doğru 
sms: yanlış 
''''

Hızlı Tip Referansı

TOON doğrudan JSON türleriyle eşleşir, ancak geçerli çıktı sağlamak için JavaScript'e özgü uç durumları incelikle ele alır.

  • Sayılar: Kurallı ondalık sayılar olarak depolanır. "1,0", "1" olur.
  • Infinity / NaN: Bunlar "null" olur (JSON bunları desteklemediğinden).
  • Tarihler: Alıntılanan ISO dizelerine dönüştürüldü.
  • Tanımsız/İşlevler: 'null'a dönüştürüldü.
  • Boş Nesneler: Hiçbir şey olarak temsil edilmez (boş çıktı).
  • Boş Diziler: anahtar[0]: olarak temsil edilir.

TOON hassasiyeti ödüllendiren bir formattır. Dizi öğelerinizi saymaya alışmak biraz zaman alabilir, ancak okunabilirlik ve dosya boyutunda elde edilen kazanç, çabaya değer. Mutlu kodlama!