Aide-mémoire du format TOON
Si vous avez déjà eu l'impression 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 trouve un équilibre unique entre la lisibilité humaine et la vitesse d'analyse machine. 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, cet 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 d'ouverture et de fermeture au profit de l'indentation et des nouvelles lignes, rendant vos données immédiatement plus propres.
Objets et Imbrication
En JSON, vous avez l'habitude de tout envelopper dans des accolades. En TOON, la structure est implicite par l'indentation.
JSON :
TOON :
Notez que les clés ne nécessitent pas de guillemets à moins qu'elles ne contiennent des caractères spéciaux, et la hiérarchie est visuellement évidente.
La puissance des tableaux
C'est là que TOON diverge vraiment des autres formats. TOON exige que vous déclariez 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, le rendant extrêmement rapide.
Tableaux Primitifs
Pour les listes simples de chaînes ou de nombres, TOON utilise une syntaxe compacte séparée par des virgules.
La Syntaxe : key[Length]: item1,item2,item3
Si vous avez un tableau racine (tout le fichier est juste une liste), cela ressemble à ceci :
Tableaux Tabulaires (La fonctionnalité vedette)
C'est la fonctionnalité qui séduit généralement les développeurs. Si vous avez un tableau d'objets qui partagent tous les mêmes clés (comme des lignes dans 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 des quantités massives de redondance trouvées dans JSON.
La Syntaxe : key[Rows]{col1,col2}:
JSON :
TOON :
Cette approche "CSV-dans-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 (nombres mélangés avec des objets), ou s'il contient des objets imbriqués complexes, TOON revient à une syntaxe de style liste à puces utilisant des tirets.
Vous pouvez même avoir des tableaux à l'intérieur de tableaux. Notez comment le tableau interne déclare également sa longueur :
Guillemets : Quand les utiliser
L'une des choses les plus agréables à propos de TOON est que vous avez rarement besoin de guillemets. Vous pouvez écrire Hello Monde 👋 sans l'envelopper dans "". Cependant, parce que TOON essaie d'inférer les types (nombres, booléens), il existe des règles spécifiques pour quand vous devez utiliser des guillemets.
La liste "Doit être entre guillemets"
Vous devez envelopper votre chaîne dans des guillemets doubles "" si :
- Elle ressemble à un nombre ou un booléen : Si vous voulez la chaîne
"123"ou"true", mettez-la entre guillemets. Sinon, ils deviennent le nombre123et le booléentrue.
- Elle contient des délimiteurs : Si votre chaîne contient une virgule
,(ou quel que soit votre délimiteur actif), mettez-la entre guillemets.
- Elle a des bords avec des espaces : Les espaces de début ou de fin nécessitent des guillemets.
- Elle contient des caractères spéciaux : Des caractères comme
:,",\,[,],{,}.
- Elle 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 est invalide.
\\(Barre oblique inverse)
\"(Guillemet double)
\n(Nouvelle ligne)
\r(Retour chariot)
\t(Tabulation)
En-têtes avancés et délimiteurs
Et si vos données sont pleines de virgules ? Vous ne voulez pas mettre de guillemets à chaque champ. TOON vous permet de changer le délimiteur dans l'en-tête du tableau.
Vous pouvez utiliser une Tabulation ou une Barre Verticale (|) en la plaçant à l'intérieur des crochets ou des accolades.
Exemple de délimiteur Barre Verticale :
En ajoutant | dans l'en-tête, l'analyseur sait qu'il doit chercher des barres verticales au lieu de virgules, gardant votre syntaxe propre.
Pliage de clés
Si vous avez une imbrication profonde mais seulement un chemin de données, vous n'avez pas besoin d'indenter cinq fois. Vous pouvez utiliser la notation par points (Pliage de clés) pour aplatir votre structure.
Imbrication standard :
Plié (Plus propre) :
Référence rapide des types
TOON correspond directement aux types JSON, mais il gère les cas limites spécifiques à JavaScript avec grâce pour garantir une sortie valide.
- Nombres : Stockés sous forme de décimaux canoniques.
1.0devient1.
- Infinity / NaN : Ceux-ci deviennent
null(car JSON ne les prend pas en charge).
- Dates : Converties en chaînes ISO entre guillemets.
- Undefined/Fonctions : Convertis en
null.
- Objets vides : Représentés comme rien (sortie vide).
- Tableaux vides : Représentés comme
key[0]:.
TOON est un format qui récompense la précision. Il faudra peut-être un moment pour s'habituer à compter les éléments de votre tableau, mais le gain en lisibilité et en taille de fichier en vaut largement la peine. Bon codage !