跳至頁尾內容
Iron Academy Logo
C#應用程式
C#應用程式

其他類別

格式化 JSON 輸出 - Spectre Console 系列

[[academy-video-youtube({"vid": "7pz9Vwxifro", "start_time": "0", "title": "Formatting JSON Output - Spectre Console Series", "creator": "Tim Corey", "length": "7m 01s"})]]

Spectre Console 是一個 .NET 程式庫,讓您能夠建立豐富多彩的控制台應用程式。 除了純文字輸出,您還可以使用 Spectre 的面板、表格,甚至是 JSON 格式化來展現資料。

在本文中,我們將詳細了解 Tim Corey 的影片"Formatting JSON Output – Spectre Console Series"中展示的 Spectre Console JSON。我們會逐步分析他的程式碼、NuGet 套件安裝以及造型提示。 您將會看到如何利用清晰的語法高亮和易讀的佈局,為您的控制台應用程式賦予"JSON 超能力"。 標題中的時間標記與 Tim 的影片相對應,讓您可以跟著學習。

開始使用:什麼是 Spectre Console JSON

在 0:00,Tim 介紹了 Spectre Console 這個用於建立視覺上吸引人的控制台應用程式的 .NET 程式庫。 他解釋說,在這堂課中,他將從 API 獲取 JSON 資料,並使用 Spectre Console JSON 顯示出來。 這意味着,您的原始 JSON 字串可以轉換為 Spectre 能渲染的豐富物件。

他提到,原始碼和專案網站連結位於描述中,您可以自行下載專案。

用輔助函式獲取 JSON 資料

在 0:35,Tim 展示了輔助程式碼。 在他的專案中,他有一個名為 Helpers 的類,具有一個叫做 FetchApiDataAsync 的函式。 這個函式會向一個 URL 發送請求,獲取 JSON,並以字串形式返回響應。

他注意到,您可以簡單地使用 AnsiConsole.WriteLine(jsonResponse) 將 JSON 輸出到控制台。 但正如他在 1:26 示範的那樣,那樣的原始輸出只是密集的文字集合,對於正在閱讀或處理的人並不友好。

安裝 Spectre Console JSON 套件

在 1:46,Tim 表示他希望正確格式化 JSON。 但首先,他需要 JSON 擴展套件。 他右鍵點擊專案,選擇"管理 NuGet 套件",並安裝 Spectre.Console.Json。

他指出,您還可以使用 CLI 並執行:

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

這是用於 JSON 渲染的官方 NuGet 套件。 正如 Tim 在 2:14 解釋的那樣,您可以使用 Spectre 套件和 Spectre.Console.Json 套件來製作一個 AOT(提前編譯)應用程式,但目前不能使用 CLI。

建立 JsonText 實例

在 2:31,Tim 展示將您的 JSON 字串轉換為 Spectre 可渲染物件的語法。 他寫道:

using Spectre.Console.Json;

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

var json = new JsonText(jsonResponse);

這會從您的字串中建立一個新的 JsonText 實例。 現在您擁有一個可以由 Spectre 以風格渲染的物件了。 您不必自行解析陣列、空值或巢狀物件——程式庫會為您處理。

在面板中呈現 JSON

在 3:00,Tim 實際展示了將 JSON 寫入控制台。 他使用 Spectre 的面板功能來為資料加上框架:

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

在 3:39,當他運行程式碼時,JSON 以樣式化的框顯示出來。 鍵是藍色,數字和布林值是綠色,文字值是紅色。 即使是陣列資料和巢狀物件也能正確顯示。 Spectre 自動包裹長行,因此您不必自己建造縮排或間距。

Spectre Console Formatting Json Output 1 related to 在面板中呈現 JSON

他還注意到在 3:59,許多終端中的 JSON 中的 URL 變成可點擊的連結——這對於直接從控制台閱讀 JSON 的人來說是另一個優勢。

新增標題、邊框和樣式

在 4:09,Tim 開始處理樣式。 他在面板上鏈式調用方法來設置標題、縮減多餘空間和更改邊框顏色:

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

在 5:02,當他運行這個構建時,控制台顯示一個標有"API Response"的精緻框,就像您在 web 工具或 IDE 中看到的一樣。這使來自 API 的資訊更容易閱讀。

Spectre Console Formatting Json Output 2 related to 新增標題、邊框和樣式

自訂 JSON 顏色

在 5:14,Tim 展示您可以單獨更改 JSON 部件的顏色。 他並不更改每個屬性,只是足以展示語法:

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

在 5:52,當他運行時,文字值是黃色,冒號是橙色。 您可以使用 Color.Red、Color.Green 或任何其他定義的 Spectre 顏色。 這讓您可以匹配公司的風格或在控制台中突顯特定值。

為什麼 Spectre Console JSON 很重要

在 6:04,Tim 總結了優勢。 使用 Spectre Console JSON,您可以:

  • 安裝單一 NuGet 套件,獲得 JSON 格式"超能力"。

  • 將普通的 JSON 字串自動呈現為著色物件。

  • 無需編寫自己的格式化程式碼即可處理陣列、巢狀集合、空值和大型資料集。

  • 輕鬆向面板新增標題、邊框和自訂顏色。

  • 保持您的控制台應用程式專業且易於閱讀。

他強調您不必自行建造縮排、處理間距或手動定義顏色。 程式庫會為您處理這些操作。

結論

在 6:38,Tim 以感謝觀眾結束。 他展示了如何從 API 獲取 JSON,將其轉換為 JsonText 物件,並在具有自訂顏色設置的樣式面板中顯示出來。

只需一個額外的 NuGet 套件和幾行碼,您的控制台應用程式就能獲得"JSON 超能力"——美觀、易讀的資料輸出。

如果您想深入了解,請查看 Spectre Console 專案網站或 Tim 的頻道以獲取更詳細的說明。 如同 Tim 在影片中展示的,安裝套件並建立 JsonText 實例後,所有困難的工作已完成。 您的控制台應用程式成為閱讀、工作和共享 JSON 資訊時更有用的工具。

Hero Worlddot related to 格式化 JSON 輸出 - Spectre Console 系列
Hero Affiliate related to 格式化 JSON 輸出 - Spectre Console 系列

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話