Aide-mémoire au format TOON
Si vous avez déjà pensé que JSON est trop verbeux (toutes ces accolades !) mais que YAML est un peu trop « magique » et imprévisible, vous pourriez bien tomber amoureux de TOON. Ce format établit un équilibre unique entre la lisibilité humaine et la vitesse d'analyse automatique. Il est conçu pour être dense, explicite et incroyablement rapide à analyser.
Que vous migriez des données ou que vous essayiez simplement de déboguer un fichier de configuration, cette aide-mémoire couvre la syntaxe essentielle que vous devez connaître.
La philosophie : moins de bruit, plus de données
La première chose que vous remarquerez est que TOON ressemble beaucoup à YAML, mais il se comporte strictement comme JSON. Il abandonne les accolades ouvrantes et fermantes au profit de l'indentation et des nouvelles lignes, ce qui rend vos données immédiatement plus propres.
Objets et imbrication
En JSON, vous avez l’habitude de tout envelopper entre accolades. Dans TOON, la structure est impliquée par l'indentation.
JSON :
{
"projet": {
"métadonnées": {
"name": "Alpha-Centaure",
"statut": "actif"
},
"jalons": [
{
"phase": "conception",
"priorité": 1
},
{
"phase": "test",
"priorité": 2
}
]
}
}
TOON :
projet :
métadonnées :
nom : Alpha-Centaure
statut : actif
jalons[2]{phase,priorité} :
conception,1
tests,2
Notez que les clés ne nécessitent pas de guillemets, sauf si elles contiennent des caractères spéciaux, et que la hiérarchie est visuellement évidente.
La puissance des tableaux
C'est là que TOON se démarque vraiment des autres formats. TOON vous demande de déclarer la longueur du tableau dans la clé elle-même. Cela peut sembler étrange au début, mais cela permet à l'analyseur de pré-allouer de la mémoire, ce qui la rend incroyablement rapide.
Tableaux primitifs
Pour de simples listes de chaînes ou de nombres, TOON utilise une syntaxe compacte séparée par des virgules.
La syntaxe :
clé[longueur] : élément 1, élément 2, élément 3
Si vous avez un tableau racine (le fichier entier n'est qu'une liste), il ressemble à ceci :
Tableaux tabulaires (la fonctionnalité Killer)
C’est la fonctionnalité qui séduit généralement les développeurs. Si vous disposez d'un tableau d'objets qui partagent tous les mêmes clés (comme les lignes d'une base de données), TOON vous permet de définir le schéma une fois dans l'en-tête, puis de simplement lister les valeurs. Cela supprime les quantités massives de redondance trouvées dans JSON.
La syntaxe :
clé[lignes]{col1,col2} :
JSON :
{
"inventaire": [
{
"sku": "KB-99",
"quantité": 50,
"allée": 4,
"réorganiser": faux
},
{
"sku": "MS-12",
"quantité": 12,
"allée": 7,
"réorganiser": vrai
},
{
"sku": "MN-44",
"quantité": 8,
"allée": 2,
"réorganiser": vrai
}
]
}
TOON :
inventaire[3]{sku,qty,allée,reorder} :
KB-99,50,4, faux
MS-12,12,7, vrai
MN-44,8,2, vrai
Cette approche « CSV-inside-YAML » rend les grands ensembles de données incroyablement lisibles et compacts.
Tableaux mixtes et imbriqués
Parfois, les données ne sont pas uniformes. Si votre tableau contient différents types de données (des nombres mélangés à des objets) ou s'il contient des objets imbriqués complexes, TOON revient à une syntaxe de style puce utilisant des traits d'union.
Vous pouvez même avoir des tableaux à l’intérieur de tableaux. Notez comment le tableau interne déclare également sa longueur :
Citation : Quand l'utiliser
L’un des avantages de TOON est que vous avez rarement besoin de devis. Vous pouvez écrire Bonjour 世界 👋 sans l'envelopper dans "". Cependant, comme TOON essaie de déduire des types (nombres, booléens), il existe des règles spécifiques indiquant quand vous devez utiliser des guillemets.
La liste des « à citer absolument »
Vous devez mettre votre chaîne entre guillemets doubles "" si :
- Cela ressemble à un nombre ou à un booléen : Si vous voulez la chaîne
"123"ou"true", citez-la. Sinon, ils deviennent le nombre « 123 » et le booléen « vrai ».
- Il contient des délimiteurs : Si votre chaîne contient une virgule
,(ou quel que soit votre délimiteur actif), citez-la.
- Il comporte des bords d'espaces : Les espaces de début ou de fin nécessitent des guillemets.
- Il contient des caractères spéciaux : Des caractères tels que
:,",\,[,],{,}.
- Il est vide : Une chaîne vide est représentée par
"".
Exemples :
Séquences d'échappement
Restez simple. TOON ne reconnaît que cinq séquences d'échappement à l'intérieur des chaînes. Tout le reste n'est pas valide.
\\(barre oblique inverse)
\"(guillemet double)
\n(Nouvelle ligne)
\r(Retour chariot)
\t(Tabulation)
En-têtes et délimiteurs avancés
Et si vos données sont pleines de virgules ? Vous ne voulez pas citer chaque champ. TOON vous permet de changer le délimiteur dans l'en-tête du tableau.
Vous pouvez utiliser un Tab ou un Pipe (|) en le plaçant à l'intérieur des crochets ou des accolades.
Exemple de délimiteur de tuyau :
En ajoutant « | » dans l'en-tête, l'analyseur sait rechercher des barres verticales au lieu de virgules, gardant ainsi votre syntaxe propre.
Pliage des clés
Si vous disposez d’une imbrication profonde mais d’un seul chemin de données, vous n’avez pas besoin d’indenter cinq fois. Vous pouvez utiliser la notation par points (Key Folding) pour aplatir votre structure.
Imbrication standard :
utilisateur :
profil :
paramètres :
notifications :
email : vrai
sms : faux
Plié (nettoyant) :
user.profile.settings.notifications :
email : vrai
sms : faux
Référence de type rapide
TOON mappe directement aux types JSON, mais il gère les cas extrêmes spécifiques à JavaScript avec élégance pour garantir une sortie valide.
- Nombres : stockés sous forme de décimales canoniques. « 1.0 » devient « 1 ».
- Infinity / NaN : Ceux-ci deviennent « nuls » (puisque JSON ne les prend pas en charge).
- Dates : Converties en chaînes ISO entre guillemets.
- Non défini/Fonctions : Converti en « null ».
- Objets vides : Représentés comme rien (sortie vide).
- Tableaux vides : Représenté par
key[0]:.
TOON est un format qui récompense la précision. Cela peut prendre un moment pour s'habituer à compter les éléments de votre tableau, mais le gain en termes de lisibilité et de taille de fichier en vaut la peine. Bon codage !