JSON 是一种数据表示格式,用于在应用程序的不同层之间存储和传输数据; 它将数据存储在键:值对中。
JSON 的语法源自 JavaScript,但它本身与语言无关。 兼容多种编程语言; 这些语言包括可用于将 JSON 集成到程序中的代码; 但不幸的是,我们不能直接在 Linux shell 中使用 JSON,因为它无法解释它。 为了在 Linux shell 中使用 JSON,我们混合使用了 JQ 和 sed 等工具。
在这篇文章中,我们将学习使用 JQ 命令在 Linux shell 中操作和处理 JSON 数据。
如何安装JQ命令
JQ 命令在某些 Linux 发行版中默认不可用; 需要下载到系统中才能在终端上使用; 您可以像系统上的任何其他程序包一样下载 JQ 命令。 在 Ubuntu 20.04 上,使用下面给出的命令安装 JQ 实用程序:
sudo apt install jq
如果您运行的是 Ubuntu 以外的发行版,只需将 apt 替换为您系统的包管理器。
如果你正在运行一个像 CentOS 8 这样默认已经有 JQ 的发行版,那么你会得到类似这样的输出:
sudo dnf install jq
句法
现在我们可以开始使用 JQ 命令,因为它已经成功安装在我们的系统上,但首先,让我们看一下 JQ 命令的语法:
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
JQ 命令可以以多种不同的方式使用; 它可以直接用于 JSON 文件,也可以结合其他几个命令来解释 JSON 数据。 JQ 命令可以与不同的过滤器一起使用,例如 “.”, “|”, “,”
或者 “.[]”
过滤器来组织 JSON 数据。
JQ 命令还采用不同的选项作为参数,例如 --tab
, --stream
, --indent n
, --unbuffered
,以及 -L 目录选项。 JQ 命令的语法乍一看可能很复杂,但阅读整篇文章后您就会熟悉它。
如何使用 JQ 命令组织 JSON 数据
JQ 命令过滤器最简单和常用的特性。 它们用于在将 JSON 数据打印到标准输出时对其进行组织和美化。
在这个例子中,我们有一个名为 employee.json 的 JSON 文件,我们需要将数据输出到标准输出:
{"workers":{"name": "John Brooks","id": "003"}}
我们可以使用 cat 命令来显示数据:
cat employee.json
使用 cat 命令打印到标准输出的数据是无组织和混乱的。 我们可以使用 JQ 命令和 ‘.’
筛选:
jq '.' employee.json