Formatierung von JSON-Ausgaben - Spectre Console Series
Spectre Console ist eine .NET-Bibliothek, mit der Sie reichhaltige, farbenfrohe Konsolenanwendungen erstellen können. Anstelle der reinen Textausgabe können Sie Spectre-Panels, Tabellen und sogar JSON-Formatierung verwenden, um Daten ansprechend zu präsentieren.
In diesem Artikel werfen wir einen detaillierten Blick auf Spectre Console JSON, wie in Tim Coreys Video "Formatierung von JSON-Ausgaben - Spectre Console Series" gezeigt Wir gehen durch seinen Code, seine NuGet-Paketinstallationen und seine Styling-Tipps. Sie werden sehen, wie Sie Ihren Konsolenanwendungen "JSON-Superkräfte" mit klarer Syntaxhervorhebung und leicht lesbaren Layouts verleihen können. Alle Zeitmarkierungen in den Überschriften entsprechen dem Video von Tim, damit Sie mitverfolgen können.
Einstieg: Was Spectre Console JSON ist
Um 0:00 Uhr stellt Tim Spectre Console vor, eine .NET-Bibliothek zur Erstellung visuell ansprechender Konsolenanwendungen. Er erklärt, dass er in dieser Lektion JSON-Daten von einer API abrufen und sie mit Spectre Console JSON anzeigen wird. Das bedeutet, dass Ihre rohe JSON-Zeichenkette in ein umfangreiches Objekt umgewandelt werden kann, das von Spectre gerendert werden kann.
Er erwähnt, dass der Quellcode und der Link zur Projektwebsite in der Beschreibung enthalten sind, damit Sie das Projekt selbst herunterladen können.
Abrufen von JSON-Daten mit einer Hilfsfunktion
Bei 0:35 zeigt Tim den Hilfscode. In seinem Projekt hat er eine Helpers-Klasse mit einer Funktion namens FetchApiDataAsync. Diese Funktion sendet eine Anfrage an eine URL, holt das JSON zurück und gibt die Antwort als String zurück.
Er merkt an, dass man einfach AnsiConsole.WriteLine(jsonResponse) verwenden kann, um das JSON in die Konsole zu schreiben. Aber wie er bei 1:26 demonstriert, ist die Rohausgabe nur eine dichte Textsammlung - nicht gerade freundlich für die Menschen, die sie lesen oder damit arbeiten.
Installation des Spectre Console JSON-Pakets
Bei 1:46 sagt Tim, dass er das JSON richtig formatieren möchte. Aber zuerst braucht er das JSON-Erweiterungspaket. Er klickt mit der rechten Maustaste auf das Projekt, wählt "NuGet-Pakete verwalten" und installiert Spectre.Console.Json.
Er weist darauf hin, dass man auch die CLI verwenden und ausführen kann:
dotnet add package Spectre.Console.Json
dotnet add package Spectre.Console.Json
Dies ist das offizielle NuGet-Paket für JSON-Rendering. Wie Tim bei 2:14 erklärt, können Sie eine AOT (ahead-of-time) kompilierte Anwendung sowohl mit dem Paket Spectre als auch mit dem Paket Spectre.Console.Json erstellen, aber derzeit nicht mit der CLI.
Erstellen einer JsonText-Instanz
Bei 2:31 zeigt Tim die Syntax für die Umwandlung einer JSON-Zeichenkette in ein renderbares Spectre-Objekt. Er schreibt:
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);
Dadurch wird eine neue Instanz von JsonText aus Ihrer Zeichenfolge erstellt. Jetzt haben Sie ein Objekt, das Spectre mit Stil rendern kann. Sie müssen Arrays, Nullwerte oder verschachtelte Objekte nicht selbst parsen - die Bibliothek übernimmt das für Sie.
JSON-Rendering innerhalb eines Panels
Bei 3:00 demonstriert Tim, wie das JSON tatsächlich in die Konsole geschrieben wird. Er verwendet die Panel-Funktion von Spectre, um die Daten zu strukturieren:
AnsiConsole.Write(
new Panel(json)
);
AnsiConsole.Write(
new Panel(json)
);
Bei 3:39, wenn er den Code ausführt, erscheint das JSON in einer gestylten Box. Tasten sind blau, Zahlen und Boolesche Werte sind grün und Textwerte sind rot. Selbst Array-Daten und verschachtelte Objekte werden korrekt dargestellt. Spectre bricht lange Zeilen automatisch um, sodass Sie die Einrückung und die Abstände nicht selbst erstellen müssen.

Bei 3:59 merkt er außerdem an, dass URLs in Ihrem JSON in vielen Terminals zu klickbaren Links werden - ein weiterer Bonus für Leute, die JSON direkt von einer Konsole aus lesen.
Hinzufügen von Kopfzeilen, Rahmen und Stilen
Bei 4:09 geht Tim zum Thema Styling über. Er verkettet Methoden auf dem Bedienfeld, um eine Kopfzeile zu setzen, überschüssigen Platz zu reduzieren und die Rahmenfarbe zu ändern:
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);
Bei 5:02, wenn er diesen Build ausführt, zeigt die Konsole ein ausgefeiltes Kästchen mit der Aufschrift "API Response" an, genau wie Sie es in einem Webtool oder einer IDE sehen könnten. Dadurch sind die Informationen aus Ihrer API viel einfacher zu lesen.

Anpassen der JSON-Farben
Bei 5:14 zeigt Tim, wie Sie die Farbe von JSON-Teilen individuell ändern können. Er ändert nicht jede Eigenschaft, sondern nur genug, um die Syntax zu demonstrieren:
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
Bei 5:52, wenn er es ausführt, sind die Textwerte gelb, und die Doppelpunkte sind orange. Sie können Color.Red, Color.Green oder jede andere definierte Spectre-Farbe verwenden. So können Sie Ihren Unternehmensstil anpassen oder bestimmte Werte in Ihrer Konsole hervorheben.
Warum Spectre Console JSON wichtig ist
Bei 6:04 fasst Tim die Vorteile zusammen. Mit Spectre Console JSON können Sie:
-
Installieren Sie ein einziges NuGet-Paket und erhalten Sie JSON-Formatierungs-"Superkräfte"
-
Nehmen Sie eine einfache JSON-Zeichenkette und stellen Sie sie automatisch als farbiges Objekt dar.
-
Arbeiten Sie mit Arrays, verschachtelten Sammlungen, Nullwerten und großen Datensätzen, ohne Ihren eigenen Formatierungscode zu schreiben.
-
Fügen Sie auf einfache Weise Überschriften, Rahmen und benutzerdefinierte Farben zu Panels hinzu.
- Halten Sie Ihre Konsolenanwendungen professionell und leicht lesbar.
Er betont, dass Sie keine Einrückungen erstellen, Abstände handhaben oder Farben manuell definieren müssen. Die Bibliothek übernimmt diese Aufgaben für Sie.
Abschluss
Um 6:38 Uhr bedankt sich Tim abschließend bei den Zuschauern. Er hat gezeigt, wie man JSON von einer API abruft, es in ein JsonText-Objekt umwandelt und es in einem gestylten Panel mit benutzerdefinierten Farbeinstellungen anzeigt.
Mit nur einem zusätzlichen NuGet-Paket und ein paar Zeilen Code kann Ihre Konsolenanwendung "JSON-Superkräfte" erhalten - eine schöne, lesbare Ausgabe für Ihre Daten.
Wenn Sie tiefer eintauchen möchten, finden Sie auf der Website des Spectre Console-Projekts oder auf Tims Channel weitere detaillierte Anweisungen. Wie Tim in seinem Video demonstriert, ist nach der Installation des Pakets und der Erstellung Ihrer JsonText-Instanz die ganze Arbeit getan. Ihre Konsolenanwendung wird zu einem weitaus nützlicheren Werkzeug zum Lesen, Arbeiten und Teilen von JSON-Informationen.
