Formatação da saída JSON - Série Spectre Console
Spectre Console é uma biblioteca .NET que permite criar aplicativos de console ricos e coloridos. Em vez de exibir apenas texto, você pode usar os painéis, tabelas e até mesmo a formatação JSON do Spectre para apresentar os dados de forma elegante.
Neste artigo, vamos analisar detalhadamente o JSON do Spectre Console, conforme mostrado no vídeo de Tim Corey " Formatando a saída JSON – Série Spectre Console ". Vamos examinar o código dele, as instalações de pacotes NuGet e as dicas de formatação. Você verá como dar aos seus aplicativos de console "superpoderes JSON" com realce de sintaxe claro e layouts fáceis de ler. Todos os marcadores de tempo nos títulos correspondem ao vídeo do Tim, para que você possa acompanhar.
Introdução: O que é JSON do Spectre Console?
Às 0:00, Tim apresenta o Spectre Console como uma biblioteca .NET para criar aplicativos de console visualmente atraentes. Ele explica que nesta lição irá buscar dados JSON de uma API e exibi-los usando o JSON do Spectre Console. Isso significa que sua sequência de JSON bruto pode ser convertida em um objeto complexo que o Spectre pode renderizar.
Ele menciona que o código-fonte e o link para o site do projeto estão na descrição, para que você possa baixar o projeto por conta própria.
Obtendo dados JSON com uma função auxiliar
Às 0:35, Tim mostra o código auxiliar. Em seu projeto, ele possui uma classe Helpers com uma função chamada FetchApiDataAsync. Essa função envia uma solicitação para uma URL, recebe o JSON de volta e retorna a resposta como uma string.
Ele observa que você poderia simplesmente usar AnsiConsole.WriteLine(jsonResponse) para escrever o JSON no console. Mas, como ele demonstra em 1:26, esse resultado bruto é apenas uma coleção densa de texto — nada amigável para quem lê ou trabalha com ele.
Instalando o pacote JSON do console Spectre
À 1:46, Tim diz que quer formatar o JSON corretamente. Mas primeiro, ele precisa do pacote de extensão JSON. Ele clica com o botão direito do mouse no projeto, escolhe "Gerenciar pacotes NuGet " e instala o Spectre.Console.Json.
Ele destaca que você também pode usar a CLI e executar:
dotnet add package Spectre.Console.Json
dotnet add package Spectre.Console.Json
Este é o pacote NuGet oficial para renderização JSON. Como Tim explica em 2:14, você pode criar um aplicativo compilado AOT (antecipadamente) com os pacotes Spectre e Spectre.Console.Json, mas não com a CLI no momento.
Criando uma instância de JsonText
Aos 2:31, Tim mostra a sintaxe para transformar sua string JSON em um objeto renderizável do Spectre. Ele escreve:
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
Isso cria uma nova instância de JsonText a partir da sua string. Agora você tem um objeto que o Spectre pode renderizar com estilo. Você não precisa analisar arrays, valores nulos ou objetos aninhados manualmente — a biblioteca faz isso para você.
Renderizando JSON dentro de um painel
Às 3h, Tim demonstra como escrever o JSON no console. Ele utiliza o recurso de painel do Spectre para enquadrar os dados:
AnsiConsole.Write(
new Panel(json)
);
AnsiConsole.Write(
new Panel(json)
);
Às 3h39, quando ele executa o código, o JSON aparece em uma caixa estilizada. As teclas são azuis, os números e valores booleanos são verdes e os valores de texto são vermelhos. Até mesmo dados em formato de matriz e objetos aninhados são exibidos corretamente. O Spectre quebra automaticamente as linhas longas, então você não precisa criar o recuo ou o espaçamento manualmente.

Ele também observa, aos 3:59, que URLs dentro do seu JSON se tornam links clicáveis em muitos terminais — outra vantagem para quem lê JSON diretamente do console.
Adicionando cabeçalhos, bordas e estilos
Às 4:09, Tim passa para a parte de estilização. Ele encadeia métodos no painel para definir um cabeçalho, recolher o espaço em excesso e alterar a cor da borda:
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);
Às 5h02, quando ele executa essa compilação, o console exibe uma caixa bem formatada com o rótulo "Resposta da API", exatamente como você veria em uma ferramenta web ou IDE. Isso facilita muito a leitura das informações da sua API.

Personalizando as cores do JSON
Às 5h14, Tim mostra que você pode alterar a cor de partes do JSON individualmente. Ele não altera todas as propriedades, apenas o suficiente para demonstrar a sintaxe:
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
Às 5h52, quando ele executa o programa, os valores do texto estão em amarelo e os dois pontos em laranja. Você pode usar Color.Red, Color.Green ou qualquer outra cor definida no Spectre. Isso permite que você combine o estilo da sua empresa ou destaque valores específicos no seu console.
Por que o JSON do console Spectre é importante
Às 6h04, Tim resume os benefícios. Com o JSON do Spectre Console, você pode:
Instale um único pacote NuGet e obtenha "superpoderes" de formatação JSON.
-
Pegue uma string JSON simples e renderize-a automaticamente como um objeto colorido.
-
Trabalhe com arrays, coleções aninhadas, valores nulos e grandes conjuntos de dados sem precisar escrever seu próprio código de formatação.
-
Adicione cabeçalhos, bordas e cores personalizadas aos painéis com facilidade.
- Mantenha seus aplicativos de console com um aspecto profissional e de fácil leitura.
Ele enfatiza que você não precisa criar recuos, lidar com espaçamento ou definir cores manualmente. A biblioteca realiza essas operações para você.
Conclusão
Às 6h38, Tim encerra agradecendo aos telespectadores. Ele mostrou como obter JSON de uma API, convertê-lo em um objeto JsonText e exibi-lo dentro de um painel estilizado com configurações de cores personalizadas.
Com apenas um pacote NuGet adicional e algumas linhas de código, seu aplicativo de console pode ganhar "superpoderes JSON" — uma saída bonita e legível para seus dados.
Se você quiser se aprofundar no assunto, confira o site do projeto Spectre Console ou o canal do Tim para obter instruções mais detalhadas. Como Tim demonstra em seu vídeo , depois de instalar o pacote e criar sua instância de JsonText, todo o trabalho pesado está feito. Seu aplicativo de console se torna uma ferramenta muito mais útil para ler, trabalhar e compartilhar informações JSON.
