Toon Format Cheat Sheet
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ă:
- ** Arată ca un număr sau boolean:** Dacă doriți șirul
"123"sau"adevărat", citați-l. În caz contrar, ele devin numărul123și booleanuladevărat.
- Conține delimitatori: Dacă șirul tău are o virgulă
,(sau oricare ar fi delimitatorul tău activ), citați-l.
- Are margini de spațiu alb: Spațiile de început sau de final necesită ghilimele.
- Conține caractere speciale: Caractere precum
:,",\,[,],{,}.
- 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.0devine1.
- 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ă!