Formateo de la salida JSON - Spectre Console Series
Spectre Console es una biblioteca .NET que permite crear aplicaciones de consola ricas y coloridas. En lugar de texto sin formato, puedes utilizar los paneles, tablas e incluso el formato JSON de Spectre para presentar los datos de forma atractiva.
En este artículo, vamos a echar un vistazo detallado a Spectre Console JSON como se muestra en el vídeo de Tim Corey "Formatting JSON Output - Spectre Console Series" Recorreremos su código, sus instalaciones de paquetes NuGet y sus consejos de estilo. Verás cómo dotar a tus aplicaciones de consola de "superpoderes JSON" con un resaltado de sintaxis claro y diseños fáciles de leer. Todos los marcadores de tiempo en los títulos corresponden al vídeo de Tim para que puedas seguirlo.
Comenzando: Qué es Spectre Console JSON
En el minuto 0:00, Tim presenta Spectre Console como una biblioteca .NET para crear aplicaciones de consola visualmente atractivas. Explica que en esta lección va a obtener datos JSON de una API y mostrarlos utilizando Spectre Console JSON. Esto significa que su cadena de JSON sin procesar puede convertirse en un objeto enriquecido que Spectre puede renderizar.
Menciona que el código fuente y el enlace al sitio web del proyecto están en la descripción para que puedas descargarlo tú mismo.
Obtención de datos JSON con una función auxiliar
En el minuto 0:35, Tim muestra el código de ayuda. En su proyecto, tiene una clase Helpers con una función llamada FetchApiDataAsync. Esta función envía una petición a una URL, obtiene el JSON y devuelve la respuesta como una cadena.
Señala que podrías utilizar simplemente AnsiConsole.WriteLine(jsonResponse) para escribir el JSON en la consola. Pero, como demuestra en el minuto 1:26, el resultado en bruto no es más que una densa colección de texto, nada amigable para las personas que lo leen o trabajan con él.
Instalación del paquete JSON de la consola Spectre
En el minuto 1:46, Tim dice que quiere formatear el JSON correctamente. Pero antes, necesita el paquete de extensión JSON. Hace clic con el botón derecho del ratón en el proyecto, selecciona "Manage NuGet Packages" e instala Spectre.Console.Json.
Señala que también puedes utilizar la CLI y ejecutar:
dotnet add package Spectre.Console.Json
dotnet add package Spectre.Console.Json
Este es el paquete NuGet oficial para el renderizado JSON. Como explica Tim en el minuto 2:14, se puede hacer una aplicación compilada AOT (ahead-of-time) tanto con el paquete Spectre como con el paquete Spectre.Console.Json, pero no con la CLI por el momento.
Creación de una instancia de JsonText
En el minuto 2:31, Tim muestra la sintaxis para convertir una cadena JSON en un objeto renderizable de Spectre. Escribe:
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
Esto crea una nueva instancia de JsonText a partir de su cadena. Ahora tienes un objeto que Spectre puede renderizar con estilo. No tiene que analizar matrices, valores nulos u objetos anidados usted mismo: la biblioteca lo hace por usted.
Renderización de JSON dentro de un panel
A las 3:00, Tim demuestra cómo se escribe el JSON en la consola. Utiliza la función de panel de Spectre para enmarcar los datos:
AnsiConsole.Write(
new Panel(json)
);
AnsiConsole.Write(
new Panel(json)
);
En el minuto 3:39, cuando ejecuta el código, el JSON aparece en un cuadro estilizado. Las teclas son azules, los números y booleanos verdes y los valores de texto rojos. Incluso los datos de matrices y los objetos anidados se muestran correctamente. Spectre envuelve automáticamente las líneas largas, por lo que no tienes que crear tú mismo la sangría o el espaciado.

También señala en el minuto 3:59 que las URL dentro de tu JSON se convierten en enlaces clicables en muchos terminales, otra ventaja para las personas que leen JSON directamente desde una consola.
Añadir encabezados, bordes y estilos
A las 4:09, Tim pasa al estilo. Encadena métodos en el panel para establecer un encabezado, contraer el espacio sobrante y cambiar el color del borde:
var panel = new Panel(json)
.Header("API Response")
.Collapse()
.BorderColor(Color.White);
AnsiConsole.Write(panel);
var panel = new Panel(json)
.Header("API Response")
.Collapse()
.BorderColor(Color.White);
AnsiConsole.Write(panel);
En el minuto 5:02, cuando ejecuta esta compilación, la consola muestra un cuadro pulido con la etiqueta "Respuesta de API", exactamente igual que el que se puede ver en una herramienta web o IDE. Esto hace que la información de tu API sea mucho más fácil de leer.

Personalización de colores JSON
En el minuto 5:14, Tim muestra cómo se puede cambiar el color de las partes de JSON individualmente. No cambia todas las propiedades, solo las suficientes para demostrar la sintaxis:
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
En el minuto 5:52, cuando lo ejecuta, los valores del texto son amarillos y los dos puntos naranjas. Puede utilizar Color.Red, Color.Green o cualquier otro color definido por Spectre. Esto le permite adaptarse a su estilo corporativo o resaltar valores específicos de su consola.
Por qué es importante el JSON de la consola Spectre
En el minuto 6:04, Tim resume las ventajas. Con Spectre Console JSON, puede:
-
Instale un único paquete NuGet y obtenga "superpoderes" de formato JSON
-
Tomar una cadena simple de JSON y renderizarla como un objeto coloreado automáticamente.
-
Trabaje con matrices, colecciones anidadas, valores nulos y grandes conjuntos de datos sin tener que escribir su propio código de formato.
-
Añade cabeceras, bordes y colores personalizados a los paneles fácilmente.
- Mantenga sus aplicaciones de consola profesionales y fáciles de leer.
Destaca que no es necesario crear sangrías, manejar el espaciado o definir colores manualmente. La biblioteca se encarga de estas operaciones por usted.
Conclusión
A las 6:38, Tim termina dando las gracias a los espectadores. Se muestra cómo obtener JSON de una API, convertirlo en un objeto JsonText y mostrarlo dentro de un panel estilizado con ajustes de color personalizados.
Con sólo un paquete NuGet adicional y unas pocas líneas de código, su aplicación de consola puede obtener "superpoderes JSON": una salida de datos bella y legible.
Si quieres profundizar más, visita el sitio web del proyecto Spectre Console o el canal de Tim para obtener instrucciones más detalladas. Como demuestra Tim en su vídeo, una vez instalado el paquete y creada la instancia de JsonText, todo el trabajo pesado está hecho. Su aplicación de consola se convierte en una herramienta mucho más útil para leer, trabajar y compartir información JSON.
