Hoja de trucos en formato TOON

TOÓN
Herramientas de desarrollo

Si alguna vez has sentido que JSON es demasiado detallado (¡todas esas llaves!) pero YAML es demasiado "mágico" e impredecible, es posible que te enamores de TOON. Este formato logra un equilibrio único entre la legibilidad humana y la velocidad de análisis de la máquina. Está diseñado para ser denso, explícito e increíblemente rápido de analizar.

Ya sea que esté migrando datos o simplemente intentando depurar un archivo de configuración, esta hoja de referencia cubre la sintaxis esencial que necesita conocer.

La Filosofía: Menos Ruido, Más Datos

Lo primero que notará es que TOON se parece mucho a YAML, pero se comporta estrictamente como JSON. Elimina las llaves de apertura y cierre en favor de sangrías y nuevas líneas, lo que hace que sus datos se vean más limpios de inmediato.

Objetos y anidamiento

En JSON, estás acostumbrado a envolver todo entre llaves. En TOON, la estructura está implícita en sangría.

JSON:

{ 
"proyecto": { 
"metadatos": { 
"nombre": "Alfa-Centauri", 
"estado": "activo" 
}, 
"hitos": [ 
{ 
"fase": "diseño", 
"prioridad": 1 
}, 
{ 
"fase": "prueba", 
"prioridad": 2 
} 
] 
} 
} 

DIBUJO:

proyecto: 
metadatos: 
nombre: Alfa-Centauri 
estado: activo 
hitos[2]{fase,prioridad}: 
diseño, 1 
prueba, 2 

Tenga en cuenta que las claves no requieren comillas a menos que contengan caracteres especiales y la jerarquía es visualmente obvia.

El poder de las matrices

Aquí es donde TOON realmente se diferencia de otros formatos. TOON requiere que declares la longitud de la matriz en la propia clave. Esto puede parecer extraño al principio, pero permite al analizador preasignar memoria, lo que la hace increíblemente rápida.

Matrices primitivas

Para listas simples de cadenas o números, TOON utiliza una sintaxis compacta separada por comas.

La sintaxis:

clave[longitud]:elemento1,elemento2,elemento3 

Si tiene una matriz raíz (el archivo completo es solo una lista), se verá así:

Matrices tabulares (la característica principal)

Esta es la característica que suele convencer a los desarrolladores. Si tiene una serie de objetos que comparten las mismas claves (como filas en una base de datos), TOON le permite definir el esquema una vez en el encabezado y luego simplemente enumerar los valores. Esto elimina enormes cantidades de redundancia que se encuentran en JSON.

La sintaxis:

clave[filas]{col1,col2}: 

JSON:

{ 
"inventario": [ 
{ 
"sku": "KB-99", 
"cantidad": 50, 
"pasillo": 4, 
"reordenar": falso 
}, 
{ 
"sku": "MS-12", 
"cantidad": 12, 
"pasillo": 7, 
"reordenar": verdadero 
}, 
{ 
"sku": "MN-44", 
"cantidad": 8, 
"pasillo": 2, 
"reordenar": verdadero 
} 
] 
} 

DIBUJO:

inventario[3]{sku,cant.,pasillo,reordenar}: 
KB-99,50,4,falso 
MS-12,12,7,verdadero 
MN-44,8,2,verdadero 

Este enfoque "CSV-inside-YAML" hace que los grandes conjuntos de datos sean increíblemente legibles y compactos.

Matrices mixtas y anidadas

A veces los datos no son uniformes. Si su matriz contiene diferentes tipos de datos (números mezclados con objetos), o si contiene objetos anidados complejos, TOON recurre a una sintaxis de estilo de viñetas que utiliza guiones.

Incluso puedes tener matrices dentro de matrices. Observe cómo la matriz interna también declara su longitud:

Citando: cuándo usarlo

Una de las cosas más interesantes de TOON es que rara vez necesitas comillas. Puedes escribir Hola 世界 👋 sin envolverlo en "". Sin embargo, debido a que TOON intenta inferir tipos (números, booleanos), existen reglas específicas sobre cuándo debes usar comillas.

La lista de "cotizaciones imprescindibles"

Debes encerrar tu cadena entre comillas dobles "" si:

  1. Parece un número o un valor booleano: Si desea la cadena "123" o "true", cítela. De lo contrario, se convierten en el número "123" y el booleano "verdadero".
  1. Contiene delimitadores: Si su cadena tiene una coma , (o cualquiera que sea su delimitador activo), cítela.
  1. Tiene bordes de espacios en blanco: Los espacios iniciales o finales requieren comillas.
  1. Contiene caracteres especiales: Caracteres como :, ", \, [, ], {, }.
  1. Está vacío: Una cadena vacía se representa como "".

Ejemplos:

Secuencias de escape

Mantenlo simple. TOON sólo reconoce cinco secuencias de escape dentro de cadenas. Cualquier otra cosa no es válida.

  • \\ (barra invertida)
  • \" (comilla doble)
  • \n (Nueva línea)
  • \r (Retorno de carro)
  • \t (Tab)

Encabezados y delimitadores avanzados

¿Qué pasa si tus datos están llenos de comas? No desea citar todos los campos. TOON le permite cambiar el delimitador en el encabezado de la matriz.

Puede utilizar una Tab o una Pipe (|) colocándola dentro de los corchetes o llaves.

Ejemplo de delimitador de tubería:

Al agregar | en el encabezado, el analizador sabe buscar tuberías en lugar de comas, manteniendo limpia la sintaxis.

Plegado de llaves

Si tiene un anidamiento profundo pero solo una ruta de datos, no necesita aplicar sangría cinco veces. Puede utilizar la notación de puntos (Key Folding) para aplanar su estructura.

Anidamiento estándar:

usuario: 
perfil: 
ajustes: 
notificaciones: 
correo electrónico: verdadero 
sms: falso 

** Doblada (limpiadora): **

perfil.de.usuario.configuración.notificaciones: 
correo electrónico: verdadero 
sms: falso 

Referencia de tipo rápido

TOON se asigna directamente a tipos JSON, pero maneja con elegancia los casos extremos específicos de JavaScript para garantizar una salida válida.

  • Números: Almacenados como decimales canónicos. "1.0" se convierte en "1".
  • Infinity/NaN: Estos se vuelven null (ya que JSON no los admite).
  • Fechas: Convertidas a cadenas ISO entre comillas.
  • Indefinido/Funciones: Convertido a nulo.
  • Objetos vacíos: Representado como nada (salida vacía).
  • Matrices vacías: Representada como clave[0]:.

TOON es un formato que premia la precisión. Puede que le lleve un momento acostumbrarse a contar los elementos de su matriz, pero la recompensa en legibilidad y tamaño de archivo bien vale la pena. ¡Feliz codificación!