Lembar Cheat Format TOON

TOON
Alat Pengembang

Jika Anda pernah merasa bahwa JSON terlalu bertele-tele (semua kurung kurawal itu!) tetapi YAML agak terlalu "ajaib" dan tidak dapat diprediksi, Anda mungkin akan jatuh cinta dengan TOON. Format ini memberikan keseimbangan unik antara keterbacaan manusia dan kecepatan penguraian mesin. Ini dirancang agar padat, eksplisit, dan sangat cepat untuk diurai.

Baik Anda memigrasikan data atau hanya mencoba men-debug file konfigurasi, lembar contekan ini mencakup sintaksis penting yang perlu Anda ketahui.

Filosofi: Lebih Sedikit Kebisingan, Lebih Banyak Data

Hal pertama yang akan Anda perhatikan adalah TOON sangat mirip YAML, tetapi berperilaku sangat mirip JSON. Ini menghilangkan tanda kurung kurawal pembuka dan penutup demi lekukan dan baris baru, membuat data Anda langsung terlihat lebih bersih.

Objek dan Bersarang

Di JSON, Anda terbiasa membungkus semuanya dengan kurung kurawal. Dalam TOON, strukturnya tersirat dalam lekukan.

JSON:

{ 
"proyek": { 
"metadata": { 
"nama": "Alpha-Centauri", 
"status": "aktif" 
}, 
"tonggak sejarah": [ 
{ 
"fase": "desain", 
"prioritas": 1 
}, 
{ 
"fase": "pengujian", 
"prioritas": 2 
} 
] 
} 
} 

TOON:

proyek: 
metadata: 
nama: Alpha-Centauri 
status: aktif 
pencapaian[2]{fase,prioritas}: 
desain,1 
pengujian,2 

Perhatikan bahwa kunci tidak memerlukan tanda kutip kecuali mengandung karakter khusus, dan hierarki terlihat jelas secara visual.

Kekuatan Array

Di sinilah TOON sangat berbeda dengan format lainnya. TOON mengharuskan Anda mendeklarasikan panjang array di kunci itu sendiri. Ini mungkin tampak aneh pada awalnya, tetapi ini memungkinkan parser untuk mengalokasikan memori terlebih dahulu, sehingga membuatnya sangat cepat.

Array Primitif

Untuk daftar string atau angka sederhana, TOON menggunakan sintaksis ringkas yang dipisahkan koma.

Sintaksnya:

kunci[panjang]:item1,item2,item3 

Jika Anda memiliki array root (seluruh file hanyalah daftar), tampilannya seperti ini:

Tabular Array (Fitur Pembunuh)

Ini adalah fitur yang biasanya memenangkan hati pengembang. Jika Anda memiliki array objek yang semuanya berbagi kunci yang sama (seperti baris dalam database), TOON memungkinkan Anda menentukan skema once di header dan kemudian mencantumkan nilainya. Hal ini menghilangkan sejumlah besar redundansi yang ditemukan di JSON.

Sintaksnya:

kunci[baris]{col1,col2}: 

JSON:

{ 
"inventaris": [ 
{ 
"sku": "KB-99", 
"jumlah": 50, 
"lorong": 4, 
"menyusun ulang": salah 
}, 
{ 
"sku": "MS-12", 
"jumlah": 12, 
"lorong": 7, 
"menyusun ulang": benar 
}, 
{ 
"sku": "MN-44", 
"jumlah": 8, 
"lorong": 2, 
"menyusun ulang": benar 
} 
] 
} 

TOON:

inventaris[3]{sku,qty,aisle,reorder}: 
KB-99,50,4, salah 
MS-12,12,7,benar 
MN-44,8,2,benar 

Pendekatan "CSV-inside-YAML" ini membuat kumpulan data besar menjadi sangat mudah dibaca dan ringkas.

Array Campuran dan Bersarang

Terkadang data tidak seragam. Jika array Anda berisi tipe data yang berbeda (angka bercampur dengan objek), atau jika array berisi objek bertingkat yang kompleks, TOON kembali ke sintaks gaya poin-poin menggunakan tanda hubung.

Anda bahkan dapat memiliki array di dalam array. Perhatikan bagaimana array bagian dalam juga mendeklarasikan panjangnya:

Mengutip: Kapan Menggunakannya

Salah satu hal terbaik tentang TOON adalah Anda jarang membutuhkan kutipan. Anda dapat menulis Halo 世界 👋 tanpa membungkusnya dengan "". Namun, karena TOON mencoba menyimpulkan tipe (angka, boolean), ada aturan khusus kapan Anda harus menggunakan tanda kutip.

Daftar "Harus Dikutip".

Anda harus membungkus string Anda dalam tanda kutip ganda "" jika:

  1. Tampaknya seperti angka atau boolean: Jika Anda menginginkan string "123" atau "true", kutiplah. Jika tidak, maka akan menjadi angka 123 dan boolean true.
  1. Berisi pembatas: Jika string Anda memiliki koma , (atau apa pun pembatas aktif Anda), kutiplah.
  1. Memiliki tepi spasi putih: Spasi awal atau akhir memerlukan tanda petik.
  1. Berisi karakter khusus: Karakter seperti :, ", \, [, ], {, }.
  1. Kosong: String kosong direpresentasikan sebagai "".

Contoh:

Urutan Pelarian

Tetap sederhana. TOON hanya mengenali lima rangkaian escape di dalam string. Yang lainnya tidak valid.

  • \\ (Garis miring terbalik)
  • \" (Kutipan ganda)
  • \n (Baris baru)
  • \r (Pengembalian kereta)
  • \t (Tab)

Header & Pembatas Tingkat Lanjut

Bagaimana jika data Anda penuh dengan koma? Anda tidak ingin mengutip setiap bidang. TOON memungkinkan Anda mengubah pembatas di header array.

Anda dapat menggunakan Tab atau Pipe (|) dengan menempatkannya di dalam tanda kurung atau kurung kurawal.

Contoh Pembatas Pipa:

Dengan menambahkan | di header, parser mengetahui cara mencari pipa, bukan koma, sehingga sintaksis Anda tetap bersih.

Kunci Lipat

Jika Anda memiliki kumpulan data yang dalam tetapi hanya satu jalur data, Anda tidak perlu membuat indentasi sebanyak lima kali. Anda dapat menggunakan notasi titik (Key Folding) untuk meratakan struktur Anda.

Sarang Standar:

pengguna: 
profil: 
pengaturan: 
pemberitahuan: 
email: benar 
sms: salah 

Dilipat (Pembersih):

pengguna.profil.pengaturan.pemberitahuan: 
email: benar 
sms: salah 

Referensi Tipe Cepat

TOON memetakan langsung ke tipe JSON, tetapi menangani kasus edge khusus JavaScript dengan baik untuk memastikan keluaran yang valid.

  • Angka: Disimpan sebagai desimal kanonik. 1.0 menjadi 1.
  • Infinity / NaN: Ini menjadi null (karena JSON tidak mendukungnya).
  • Tanggal: Dikonversi ke string ISO yang dikutip.
  • Tidak Terdefinisi/Fungsi: Dikonversi menjadi null.
  • Objek Kosong: Direpresentasikan sebagai tidak ada (output kosong).
  • Array Kosong: Diwakili sebagai kunci[0]:.

TOON adalah format yang menghargai presisi. Mungkin perlu beberapa saat untuk membiasakan diri menghitung item array, namun hasil dari keterbacaan dan ukuran file sepadan dengan usaha yang dilakukan. Selamat membuat kode!