Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Formatowanie wyjścia JSON - seria Spectre Console

Tim Corey
7m 01s

Spectre Console to biblioteka .NET, która pozwala tworzyć bogate, kolorowe aplikacje konsolowe. Zamiast zwykłego tekstu możesz użyć paneli, tabel, a nawet formatowania JSON w Spectre, aby pięknie zaprezentować dane.

W tym artykułe przyjrzymy się szczegółowo Spectre Console JSON, tak jak pokazano w filmie Tima Coreya "Formatting JSON Output – Spectre Console Series". Omówimy jego kod, instalacje pakietów NuGet oraz wskazówki dotyczące stylizacji. Zobaczysz, jak nadać swoim aplikacjom konsolowym "supermoce JSON" dzięki przejrzystemu podświetlaniu składni i czytelnym układom. Wszystkie oznaczenia czasowe w nagłówkach odpowiadają filmowi Tima, dzięki czemu można śledzić jego treść.

Pierwsze kroki: Czym jest Spectre Console JSON

O 0:00 Tim przedstawia Spectre Console jako bibliotekę .NET do tworzenia atrakcyjnych wizualnie aplikacji konsolowych. Wyjaśnia, że w tej lekcji zamierza pobrać dane JSON z interfejsu API i wyświetlić je za pomocą Spectre Console JSON. Oznacza to, że ciąg surowego JSON może zostać przekształcony w bogaty obiekt, który Spectre może wyrenderować.

Autor wspomina, że kod źródłowy i link do strony projektu znajdują się w opisie, dzięki czemu można samodzielnie pobrać projekt.

Pobieranie danych JSON za pomocą funkcji pomocniczej

W 0:35 Tim pokazuje kod pomocniczy. W swoim projekcie posiada klasę Helpers z funkcją o nazwie FetchApiDataAsync. Ta funkcja wysyła żądanie do adresu URL, pobiera dane JSON i zwraca odpowiedź w postaci ciągu znaków.

Zauważa, że można po prostu użyć AnsiConsole.WriteLine(jsonResponse), aby zapisać JSON w konsoli. Jednak, jak pokazuje w 1:26, ten surowy wynik to po prostu gęsty zbiór tekstu — nieprzyjazny dla osób, które go czytają lub z nim pracują.

Instalacja pakietu JSON Spectre Console

W 1:46 Tim mówi, że chce poprawnie sformatować JSON. Najpierw jednak potrzebuje pakietu rozszerzeń JSON. Kliknął prawym przyciskiem myszy na projekt, wybrał "Zarządzaj pakietami NuGet" i zainstalował Spectre.Console.Json.

Zwraca uwagę, że można również użyć CLI i uruchomić:

dotnet add package Spectre.Console.Json
dotnet add package Spectre.Console.Json

Jest to oficjalny pakiet NuGet do renderowania JSON. Jak wyjaśnia Tim w 2:14, można stworzyć aplikację skompilowaną metodą AOT (ahead-of-time) zarówno przy użyciu pakietu Spectre, jak i pakietu Spectre.Console.Json, ale obecnie nie jest to możliwe przy użyciu CLI.

Tworzenie instancji JsonText

O 2:31 Tim pokazuje składnię służącą do przekształcenia ciągu JSON w obiekt renderowalny przez Spectre. Pisze:

using Spectre.Console.Json;

var json = new JsonText(jsonResponse);
using Spectre.Console.Json;

var json = new JsonText(jsonResponse);

Tworzy to nową instancję JsonText na podstawie podanego ciągu znaków. Teraz masz obiekt, który Spectre może renderować z klasą. Nie musisz samodzielnie analizować tablic, wartości null ani obiektów zagnieżdżonych — biblioteka zrobi to za Ciebie.

Renderowanie JSON wewnątrz panelu

O godz. 3:00 Tim pokazuje, jak faktycznie zapisać JSON w konsoli. Używa funkcji panelu Spectre do kadrowania danych:

AnsiConsole.Write(
    new Panel(json)
);
AnsiConsole.Write(
    new Panel(json)
);

O 3:39, kiedy uruchamia kod, JSON pojawia się w stylizowanym polu. Klucze są niebieskie, liczby i wartości logiczne są zielone, a wartości tekstowe są czerwone. Nawet dane tablicowe i obiekty zagnieżdżone wyświetlają się poprawnie. Spectre automatycznie zawija długie linie, więc nie musisz samodzielnie tworzyć wcięć ani odstępów.

Spectre Console Formatting Json Output 1 related to Renderowanie JSON wewnątrz panelu

W 3:59 zauważa również, że adresy URL w pliku JSON stają się klikalnymi linkami w wielu terminalach — to kolejna zaleta dla osób czytających JSON bezpośrednio z konsoli.

Dodawanie nagłówków, obramowań i stylów

O 4:09 Tim przechodzi do kwestii stylizacji. Łączy metody na panelu, aby ustawić nagłówek, zwinąć nadmiarową przestrzeń i zmienić kolor obramowania:

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);

O 5:02, kiedy uruchamia tę kompilację, konsola wyświetla eleganckie okienko z napisem "API Response", dokładnie tak, jak można to zobaczyć w narzędziu internetowym lub środowisku IDE. Dzięki temu informacje z API są znacznie łatwiejsze do odczytania.

Spectre Console Formatting Json Output 2 related to Dodawanie nagłówków, obramowań i stylów

Dostosowywanie kolorów JSON

O 5:14 Tim pokazuje, że można indywidualnie zmieniać kolor poszczególnych części JSON. Nie zmienia on wszystkich właściwości, a jedynie tyle, ile potrzeba do zademonstrowania składni:

json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;

O 5:52, kiedy uruchamia program, wartości tekstowe są żółte, a dwukropki pomarańczowe. Możesz użyć koloru Color.Red, Color.Green lub dowolnego innego zdefiniowanego koloru Spectre. Pozwala to dopasować styl do wizerunku firmy lub podkreślić konkretne wartości w konsoli.

Dłączego Spectre Console JSON ma znaczenie

O godz. 6:04 Tim podsumowuje zalety. Dzięki Spectre Console JSON możesz:

  • Zainstaluj jeden pakiet NuGet i zyskaj "supermoce" formatowania JSON.

  • Pobierz zwykły ciąg JSON i automatycznie renderuj go jako kolorowy obiekt.

  • Pracuj z tablicami, zagnieżdżonymi kolekcjami, wartościami null i dużymi zbiorami danych bez konieczności pisania własnego kodu formatującego.

  • Łatwo dodawaj nagłówki, obramowania i niestandardowe kolory do paneli.

  • Dbaj o profesjonalny wygląd i czytelność swoich aplikacji konsolowych.

Podkreśla, że nie trzeba ręcznie tworzyć wcięć, zajmować się odstępami ani definiować kolorów. Biblioteka wykonuje te operacje za Ciebie.

Wnioski

O 6:38 Tim kończy, dziękując widzom. Pokazał, jak pobrać JSON z API, przekonwertować go na obiekt JsonText i wyświetlić w stylizowanym panelu z niestandardowymi ustawieniami kolorów.

Wystarczy jeden dodatkowy pakiet NuGet i kilka linii kodu, aby Twoja aplikacja konsolowa zyskała "supermoce JSON" — piękny, czytelny wynik dla Twoich danych.

Jeśli chcesz zgłębić temat, odwiedź stronę projektu Spectre Console lub kanał Tima, aby uzyskać bardziej szczegółowe instrukcje. Jak pokazuje Tim w swoim filmie, po zainstalowaniu pakietu i utworzeniu instancji JsonText cała ciężka praca jest już za nami. Twoja aplikacja konsolowa staje się znacznie bardziej użytecznym narzędziem do odczytu, pracy i udostępniania informacji JSON.

Hero Worlddot related to Formatowanie wyjścia JSON - seria Spectre Console
Hero Affiliate related to Formatowanie wyjścia JSON - seria Spectre Console

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie