如何在 Linux 终端上漂亮地打印 JSON 文件
JSON 文件非常棒，因为它们以人类可读的格式存储数据集合。然而，如果 JSON 文件被最小化过，那么阅读 JSON 文件可能会很痛苦。
JSON
113.110.227.74
对于小文件还行，大文件没太大作用。
来自广东深圳的 Firefox 84.0|Windows 10 用户
2020-12-23T10:46:05.000
JSON 文件非常棒，因为它们以人类可读的格式存储数据集合。然而，如果 JSON 文件被最小化过，那么阅读 JSON 文件可能会很痛苦。
![](/data/attachment/album/202012/13/122331h00a3hc63ttoc630.jpg)


[JSON](https://www.json.org) 文件非常棒，因为它们以人类可读的格式存储数据集合。然而，如果 JSON 文件被最小化过，那么阅读 JSON 文件可能会很痛苦。


以这个为例：


![Minified JSON is difficult to read](/data/attachment/album/202012/13/122430wqgtp1gjtot17gs0.png)


计算机可以很容易地读取它。即使是人也能读，但如果 JSON 文件以合适的格式显示，那么阅读就会简单很多。我的意思是 JSON 文件应该是这样读的：


![Pretty Printed JSON is easier to read](/data/attachment/album/202012/13/122430nliz1tiujd15jklk.png)


你可以使用大多数的文本编辑器和一些插件以合适的格式显示它。然而，如果你在终端中，或者你想在你的 shell 脚本中这么做，事情会有所不同。


如果你有一个已最小化过的 JSON 文件，让我来告诉你如何在 Linux 终端中漂亮地输出它。


### 在 Linux 中用 jq 命令漂亮地打印 JSON 文件


[jq](https://stedolan.github.io/jq/) 是一个命令行 JSON 处理器。你可以用它来切分、过滤、映射和转换结构化数据。我在这里不打算详细介绍 `jq` 命令行工具的使用。


要使用 `jq`，你需要先安装它。你可以使用你的[发行版的包管理器](https://itsfoss.com/package-manager/)来安装它。如果启用了 [universe 仓库](https://itsfoss.com/ubuntu-repositories/)，你可以使用 `apt` 命令在 Ubuntu 上安装它：



```
sudo apt install jq

```

安装好后，用下面的方法在显示屏上漂亮地打印 JSON 文件：



```
jq . sample.json

```

![Pretty printed JSON file](/data/attachment/album/202012/13/122430m19h7vehhbokkkzb.png)


你可能也想用 `cat`，但我认为 `cat` 在这里没用。



```
cat sample.json | jq

```

请记住，上述命令不会影响原始 JSON 文件。不会向它写入任何更改。


你可能已经知道[如何在 Linux 中把命令输出重定向到一个文件](https://itsfoss.com/save-command-output-to-file-linux/)。你可能也知道不能重定向到同一个文件，而且 `tee` 命令也不能保证一直有效。


如果你想用漂亮的格式修改原来的 JSON 文件，可以把解析后的输出结果用管道传送到一个新的文件中，然后覆盖原来的 JSON 文件。



```
jq . sample.json > pretty.json

```

![Pretty printing JSON file in Linux Terminal](/data/attachment/album/202012/13/122431nptpmd9auttx96p9.png)


#### 额外技巧：用 jq 命令对 JSON 文件最小化。


让我们反过来，对一个格式良好的 JSON 文件进行最小化。要最小化 JSON 文件，你可以使用选项 `-c`。



```
jq -c < pretty.json

```

![Minified JSON file display](/data/attachment/album/202012/13/122431ikfdfdwf4m3wmlk1.png)


如果你愿意，你也可以使用 `cat` 和重定向：



```
cat pretty.json | jq -c

```

### 在 Linux 中使用 Python 来漂亮地打印 JSON 文件


你更有可能是在系统中安装了 Python。如果是这样的话，你可以用它在终端漂亮地打印 JSON 文件：



```
python3 -m json.tool sample.json

```

![Pretty printing JSON with Python](/data/attachment/album/202012/13/122431pkd8ppj4js8duzds.png)


我知道还有其他方法可以解析 JSON 文件并以适当的格式打印出来。你可以自己去探索，但这两种方法足以完成漂亮地打印 JSON 文件的工作。




---


via: <https://itsfoss.com/pretty-print-json-linux/>


作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

