JSON Çıktısı Formatlama - Spectre Console Serisi
[[academy-video-youtube({"vid": "7pz9Vwxifro", "start_time": "0", "title": "JSON Çıktısını Biçimlendirme - Spectre Console Serisi", "creator": "Tim Corey", "length": "7m 01s"})]]
Spectre Console, zengin ve renkli konsol uygulamaları geliştirmenize olanak tanıyan bir .NET kütüphanesidir. Düz metin çıktısı yerine, Spectre'nin panellerini, tablolarını ve hatta JSON formatlamasını kullanarak verileri güzel bir şekilde sunabilirsiniz.
Bu makalede, Tim Corey'nin "JSON Çıktısını Biçimlendirme – Spectre Console Serisi" videosunda gösterilen Spectre Console JSON'a detaylı bir bakış atacağız. Kodu, NuGet paket kurulumları ve stil ipuçlarını adım adım inceleyeceğiz. Konsol uygulamalarınıza "JSON süper güçleri" vermek için net sözdizimi vurgulama ve kolay okunabilir düzenler nasıl sağlayacağınızı göreceksiniz. Başlıklardaki tüm zaman işaretçileri, Tim'in videosuna karşılık gelir, böylece takip edebilirsiniz.
Başlarken: Spectre Console JSON Nedir?
0:00'da, Tim, Spectre Console'u görsel olarak çekici konsol uygulamaları oluşturmak için bir .NET kütüphanesi olarak tanıtıyor. Bu derste bir API'den JSON verilerini alıp, Spectre Console JSON kullanarak göstereceğini açıklıyor. Bu, ham JSON dizinizin Spectre tarafından işlenebilecek zengin bir nesneye dönüştürülebileceği anlamına gelir.
Kendisi, proje kaynak kodu ve proje web sitesi bağlantısının açıklamada yer aldığını, bu nedenle projeyi kendiniz indirebileceğinizi belirtiyor.
Yardımcı Fonksiyon ile JSON Verisi Çekme
0:35'te Tim, yardımcı kodu gösteriyor. Projesinde, FetchApiDataAsync adlı bir fonksiyona sahip bir Helpers sınıfı bulunmaktadır. Bu fonksiyon, bir URL'ye istekte bulunur, JSON'u geri alır ve yanıtı bir string olarak döndürür.
Console'a JSON yazdırmak için AnsiConsole.WriteLine(jsonResponse) kullanabileceğinizi belirtiyor. Ancak 1:26'da gösterdiği gibi, bu ham çıktı sadece yoğun bir metin yığınıdır—okuyan veya işlem yapan insanlar için kullanışlı değildir.
Spectre Console JSON Paketini Kurma
1:46'da, Tim JSON'u düzgün bir şekilde biçimlendirmek istediğini söylüyor. Ama önce JSON uzantı paketine ihtiyacı var. Projeye sağ tıklayıp "Manage NuGet Packages" seçeneğini seçer ve Spectre.Console.Json paketini yükler.
Kendisinin belirttiği gibi, CLI'yi de kullanabilir ve çalıştırabilirsiniz:
dotnet add package Spectre.Console.Jsondotnet add package Spectre.Console.JsonBu, JSON renderleme için resmi NuGet paketidir. Tim'in 2:14'te açıkladığı gibi, hem Spectre paketi hem de Spectre.Console.Json paketi ile AOT (önceden derlenmiş) bir uygulama yapabilirsiniz, ancak şu anda CLI ile değil.
JsonText Örneği Oluşturma
2:31'de, Tim JSON dizgenizi Spectre ile işlenebilir bir nesneye dönüştürmek için söz dizimini gösteriyor. Şunu yazar:
using Spectre.Console.Json;
var json = new JsonText(jsonResponse);using Spectre.Console.Json;
var json = new JsonText(jsonResponse);Bu, dize'nizden yeni bir JsonText örneği oluşturur. Şimdi Spectre'nin stil ile işleyebileceği bir nesneye sahipsiniz. Dizileri, null değerleri veya iç içe geçmiş nesneleri kendiniz ayrıştırmanız gerekmez—kütüphane bunu sizin için yapar.
JSON'u Bir Panel İçinde Yansıtma
Saat 3:00'da, Tim JSON'u konsola yazmayı gösteriyor. O, veriyi çerçevelemek için Spectre'nin panel özelliğini kullanır:
AnsiConsole.Write(
new Panel(json)
);AnsiConsole.Write(
new Panel(json)
);3:39'da, kodu çalıştırdığında JSON, stillendirilmiş bir kutuda görünür. Anahtarlar mavi, sayılar ve booleans yeşil, metin değerler kırmızıdır. Hatta dizi verileri ve iç içe geçmiş nesneler doğru bir şekilde görüntülenir. Spectre, uzun satırları otomatik olarak sarar, bu yüzden girinti veya aralıkları kendiniz oluşturmanıza gerek yoktur.

Ayrıca, 3:59'da JSON içindeki URL'lerin birçok terminalde tıklanabilir bağlantılar haline geldiğini belirtiyor—bu, konsoldan doğrudan JSON okuyan kişiler için başka bir avantaj.
Başlıklar, Kenarlıklar ve Stiller Ekleme
4:09'da Tim, stil vermeye geçiyor. Panel üzerinde bir başlık ayarlamak, fazla alanı daraltmak ve kenarlık rengini değiştirmek için yöntemleri zincirler:
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);Saat 5:02'de bu derleme çalıştırıldığında, konsolda "API Yanıtı" etiketli cilalı bir kutu gösterilir, tıpkı bir web aracı veya IDE'de görebileceğiniz gibi. Bu, API'nizden gelen bilgileri okumayı çok daha kolay hale getirir.

JSON Renklerini Özelleştirme
Tim, 5:14'te JSON parçalarının rengini tek tek değiştirebileceğinizi gösteriyor. Her özelliği değiştirmiyor, sadece sözdizimini göstermek için yeterli kadarını değiştiriyor:
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;Saat 5:52'de çalıştırdığında, metin değerleri sarı ve iki nokta üst üste işaretleri turuncu. Color.Red, Color.Green veya herhangi bir tanımlı Spectre rengini kullanabilirsiniz. Bu, kurumsal tarzınıza uyum sağlamanıza veya konsolunuzda belirli değerleri vurgulamanıza olanak tanır.
Spectre Console JSON Neden Önemlidir
6:04'te, Tim faydaları özetliyor. Spectre Console JSON ile şunları yapabilirsiniz:
Tek bir NuGet paketini yükleyerek JSON formatlama "süper yeteneklerini" kazanın.
Düz bir JSON dizesini alın ve otomatik olarak renklendirilmiş bir nesne olarak oluşturun.
- Kendi biçimlendirme kodunuzu yazmadan diziler, iç içe koleksiyonlar, null değerler ve büyük veri kümeleri ile çalışın.
Başlıklara, kenarlıklara ve özel renklere panellere kolayca ekleyin.
- Konsol uygulamalarınızı profesyonel ve kolay okunabilir tutun.
O, girinti oluşturmak, boşlukları ayarlamak veya renkleri elle tanımlamak zorunda olmadığınızı vurguluyor. Kütüphane bu işlemleri sizin için yönetir.
Sonuç
Tim, 6:38'de izleyicilere teşekkür ederek bitiriyor. Bir API'den JSON almayı, bunu bir JsonText nesnesine dönüştürmeyi ve özel renk ayarlarıyla stillendirilmiş bir panel içinde görüntülemeyi gösterdi.
Sadece bir ekstra NuGet paketi ve birkaç satır kod ile konsol uygulamanız "JSON süper yetenekleri" kazanabilir—verileriniz için güzel, okunabilir çıktı.
Daha derine inmek isterseniz, Spectre Console proje web sitesini veya Tim'in kanalını daha detaylı talimatlar için inceleyebilirsiniz. Tim'in videosunda gösterdiği gibi, paketi yükleyip JsonText örneğinizi oluşturduğunuzda, tüm zor işler yapılır. Konsol uygulamanız, JSON bilgilerini okuma, işleme ve paylaşma konusunda çok daha kullanışlı bir araç haline gelir.

