Linux 命令行中的漂亮打印 JSON

虽然 JSON 文件更适合以人类可读的形式存储数据,但当它们被缩小时足以让人头疼。

当然,无论如何它都将保持人类可读的形式,但拥有格式良好的文件总是很容易。 因此,让我首先分享您对本指南的期望:

在本指南中,我将使用以下非结构化 JSON 文件来确保相关性:

{"menu": {"id": "file","value": "File","popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}}

现在,让我分享各种以结构化、人类可读的格式读取 JSON 文件的方法。

方法 1:使用 jq 命令漂亮地打印 JSON 文件

jq 是一个命令行 JSON 处理器,它允许用户以各种方式修改 JSON 文件,允许用户使用各种选项来重新格式化他们的 JSON 文件。

但是需要先安装。 如果您使用的是基于 Debian 的发行版,则可以使用以下命令:

sudo apt install jq

重新格式化 JSON 文件最直接的方法是在文件名后面加上 .

jq . File.json

jq 允许用户以两种方式格式化他们的文件:

  • --tab 将为每个缩进级别添加一个制表符,而不是默认的两个空格。
  • --indent number 允许用户为每个缩进级别添加空格(最多 8 个)。

为了 example,我将为每个缩进添加四个空格:

jq . --indent 4 File.json
在 linux 中打印漂亮的 JSON 文件时自定义间距行为

方法二:使用 json_pp 漂亮地打印 JSON 文件

json_pp 是一个 Perl 模块,旨在将输入转换为不同的输出格式,也可用于漂亮地打印 JSON 文件。

它需要使用 cat 命令进行管道传输才能工作。 让我告诉你怎么做:

cat File.json | json_pp
使用 json_pp 命令在 Linux 中漂亮地打印 JSON 文件

方法3:使用Python漂亮打印JSON文件

作为大多数系统的一个组成部分,有什么不让 Python 完成我们想要的任务呢?

要使用 Python 格式化 JSON 文件,我将使用 json.tool-m 选项:

python3 -m json.tool File.json
使用python在Linux中漂亮地打印JSON文件

方法四:使用 json_xs 命令漂亮打印 JSON 文件

这不会在 STDIN 中显示任何结果,但会在文件本身中进行更改。 使其成为在整个指南中直接保存更改的唯一方法。

为了 example,我会将更改保存到一个名为 Structured.json

<File.json json_xs >Structured.json
使用 json_xs 命令在 Linux 中漂亮地打印 JSON 文件

总结

这是我对如何通过多种方法在 Linux 中打印漂亮的 JSON 文件的看法。 如果你想完全控制格式,我建议使用第一种方法。

如果您仍有任何疑问,请随时在评论部分提出。