跳至页脚内容
Iron Academy Logo
C# 应用程序
C# 应用程序

其他类别

格式化 JSON 输出 - Spectre 控制台系列

Tim Corey
7分01秒

Spectre Console 是一个 .NET 库,可让您构建丰富多彩的控制台应用程序。 您可以使用 Spectre 的面板、表格甚至 JSON 格式来美化数据,而不是纯文本输出。

在本文中,我们将详细介绍 Tim Corey 的视频"格式化 JSON 输出 - Spectre Console 系列"中展示的 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 响应 "的抛光框,这与您在网络工具或集成开发环境中看到的一模一样。这使得来自 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 控制台系列
Hero Affiliate related to 格式化 JSON 输出 - Spectre 控制台系列

分享您的所爱,赚取更多收入

您为使用 .NET、C#、Java、Python 或 Node.js 的开发人员创建内容吗?将您的专业知识转化为额外收入!

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我