Toon Format Cheat Sheet

TOON
Instrumente de dezvoltare

Dacă ați simțit vreodată că JSON este prea pronunțat (toate acele bretele!), dar YAML este puțin prea „magic” și imprevizibil, s-ar putea să vă îndrăgostiți de TOON. Acest format atinge un echilibru unic între lizibilitatea umană și viteza de analizare a mașinii. Este conceput pentru a fi dens, explicit și incredibil de rapid de analizat.

Indiferent dacă migrați date sau doar încercați să depanați un fișier de configurare, această foaie de cheat acoperă sintaxa esențială pe care trebuie să o cunoașteți.

Filosofia: mai puțin zgomot, mai multe date

Primul lucru pe care îl veți observa este că TOON seamănă mult cu YAML, dar se comportă strict ca JSON. Renunță la bretele de deschidere și de închidere în favoarea indentării și a liniilor noi, făcând datele dvs. să pară mai curate imediat.

Obiecte și cuibări

În JSON, sunteți obișnuit să înfășurați totul în acolade. În TOON, structura este implicată prin indentare.

JSON:

{ 
„proiect”: { 
„metadate”: { 
"nume": "Alpha-Centauri", 
"status": "activ" 
}, 
"repere": [ 
{ 
„faza”: „proiectare”, 
„prioritate”: 1 
}, 
{ 
"faza": "testare", 
„prioritate”: 2 
} 
] 
} 
} 

TOON:

proiect: 
metadate: 
nume: Alpha-Centauri 
stare: activ 
etape[2]{faza,prioritate}: 
proiectare, 1 
testare,2 

Observați că cheile nu necesită ghilimele decât dacă conțin caractere speciale, iar ierarhia este evidentă vizual.

Puterea matricelor

Aici TOON se deosebește cu adevărat de alte formate. TOON vă cere să declarați lungimea matricei în cheia în sine. Acest lucru poate părea ciudat la început, dar permite analizorului să pre-aloceze memoria, făcând-o uluitor de rapidă.

Matrice primitive

Pentru liste simple de șiruri de caractere sau numere, TOON folosește o sintaxă compactă, separată prin virgulă.

Sintaxa:

cheie[lungime]:item1,item2,item3 

Dacă aveți o matrice rădăcină (întregul fișier este doar o listă), arată astfel:

Matrice tabulare (funcția Killer)

Aceasta este caracteristica care îi cucerește de obicei pe dezvoltatori. Dacă aveți o serie de obiecte care partajează toate aceleași chei (cum ar fi rândurile dintr-o bază de date), TOON vă permite să definiți schema o dată în antet și apoi doar să enumerați valorile. Acest lucru elimină cantități masive de redundanță găsite în JSON.

Sintaxa:

cheie[rânduri]{col1,col2}: 

JSON:

{ 
„inventar”: [ 
{ 
"sku": "KB-99", 
„cantitate”: 50, 
„culoar”: 4, 
„reordonare”: fals 
}, 
{ 
"sku": "MS-12", 
„cantitate”: 12, 
„culoar”: 7, 
„reordonare”: adevărat 
}, 
{ 
"sku": "MN-44", 
„cantitate”: 8, 
„culoar”: 2, 
„reordonare”: adevărat 
} 
] 
} 

TOON:

inventar[3]{sku,qty,ale,reorder}: 
KB-99,50,4,fals 
MS-12,12,7, adevărat 
MN-44,8,2,adevărat 

Această abordare „CSV-inside-YAML” face seturile mari de date incredibil de lizibile și compacte.

Matrice mixte și imbricate

Uneori datele nu sunt uniforme. Dacă matricea dvs. conține diferite tipuri de date (numere amestecate cu obiecte) sau dacă conține obiecte imbricate complexe, TOON se întoarce la o sintaxă în stil marcator folosind cratime.

Puteți chiar să aveți matrice în interiorul matricelor. Observați cum și matricea interioară își declară lungimea:

Citat: Când să-l folosești

Unul dintre cele mai frumoase lucruri despre TOON este că rar ai nevoie de citate. Puteți scrie Salut 世界 👋 fără a-l împacheta în "". Cu toate acestea, deoarece TOON încearcă să deducă tipuri (numere, booleani), există reguli specifice pentru când trebuie să utilizați ghilimele.

Lista „Citat obligatoriu”.

Trebuie să înfășurați șirul între ghilimele duble "" dacă:

  1. ** Arată ca un număr sau boolean:** Dacă doriți șirul "123" sau "adevărat", citați-l. În caz contrar, ele devin numărul 123 și booleanul adevărat.
  1. Conține delimitatori: Dacă șirul tău are o virgulă , (sau oricare ar fi delimitatorul tău activ), citați-l.
  1. Are margini de spațiu alb: Spațiile de început sau de final necesită ghilimele.
  1. Conține caractere speciale: Caractere precum :, ", \, [, ], {, }.
  1. Este gol: Un șir gol este reprezentat ca "".

Exemple:

Secvențe de evacuare

Păstrați-o simplu. TOON recunoaște doar cinci secvențe de escape în interiorul șirurilor. Orice altceva este invalid.

  • \\ (Bară inversă)
  • \" (ghilimele duble)
  • \n (Linie nouă)
  • \r (Întoarcere cărucior)
  • \t (filă)

Anteturi și delimitări avansate

Ce se întâmplă dacă datele tale sunt pline de virgule? Nu doriți să citați fiecare câmp. TOON vă permite să schimbați delimitatorul din antetul matricei.

Puteți folosi un Tab sau un Pipe (|) plasându-l în interiorul parantezelor sau acoladelor.

Exemplu delimitator de conducte:

Adăugând | în antet, analizatorul știe să caute conducte în loc de virgule, păstrând sintaxa curată.

Pliere cheie

Dacă aveți imbricare profundă, dar o singură cale de date, nu trebuie să indentați de cinci ori. Puteți utiliza notația cu puncte (Key Folding) pentru a vă aplatiza structura.

Cuibări standard:

utilizator: 
profil: 
setari: 
notificări: 
email: adevarat 
sms: fals 

** Pliat (Curățător):**

user.profile.settings.notifications: 
email: adevarat 
sms: fals 

Referință de tip rapid

TOON mapează direct la tipurile JSON, dar gestionează cu grație cazurile marginale specifice JavaScript pentru a asigura rezultate valide.

  • Numere: stocate ca zecimale canonice. 1.0 devine 1.
  • Infinity / NaN: Acestea devin null (deoarece JSON nu le acceptă).
  • Date: convertite în șiruri ISO între ghilimele.
  • Nedefinit/Funcții: convertit în null.
  • Obiecte goale: Reprezentate ca nimic (ieșire goală).
  • Empty Arrays: Reprezentat ca key[0]:.

TOON este un format care recompensează precizia. S-ar putea să dureze un moment pentru a vă obișnui cu numărarea elementelor matricei dvs., dar profitul în lizibilitate și dimensiunea fișierului merită efortul. Codare fericită!