如何安装JQ命令
jq
:[root@localhost ~]# dnf -y install jq
语 法
jq [options] [file...]
jq [options] --args [strings...]
jq [options] --jsonargs [JSON_TEXTS...]
如何使用 JQ 命令组织 JSON 数据
{"workers":{"name": "John Brooks","id": "003"}}
[root@localhost ~]# cat employee.json
{"workers":{"name": "John Brooks","id": "003"}}
使用 cat 命令打印到标准输出的数据是无组织和混乱的。我们可以使用 JQ 命令和“.”来组织这些数据,使用
.
来筛选:[root@localhost ~]# jq '.' employee.json
{
"workers": {
"name": "John Brooks",
"id": "003"
}
}
现在,数据变得更有条理、色彩丰富且更易于理解。从 API 访问数据时尤其需要此过滤器;API 中存储的数据可能非常无组织且令人困惑。
如何使用 JQ 命令访问属性
.字段
过滤器和 JQ 命令可用于访问 shell 中的对象属性。.字段
运算符。例如,要访问工人的属性,我们可以使用以下命令:[root@localhost ~]# jq '.workers' employee.json
{
"name": "John Brooks",
"id": "003"
}
我们还可以使用
.字段
运算符访问属性中存在的项目。要访问工人属性中的名称项,我们将使用:[root@localhost ~]# jq '.workers.name' employee.json
"John Brooks"
如何使用 JQ 命令访问数组项
.[]
运算符访问和输出 JSON 文件中数组中存在的元素。对于这个例子,我们将修改我们的 JSON 文件,添加下面内容:[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
[root@localhost ~]# cat employee.json
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
要输出 JSON 文件中存在的所有数组,我们将运行以下命令:
[root@localhost ~]# jq '.[]' employee.json
{
"name": "John Brooks",
"id": "003"
}
{
"name": "Randy Park",
"id": "053"
}
{
"name": "Todd Gray",
"id": "009"
}
要仅输出第二个数组,我们可以通过以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json
{
"name": "Randy Park",
"id": "053"
}
请记住,数组从索引 0 开始的。
.字段
运算符访问数组中存在的属性。例如,如果我们想访问第三个数组中的 name 属性,那么我们将运行以下命令:[root@localhost ~]# jq '.[2].name' employee.json
"Todd Gray"
类似地,要访问数组中的所有名称属性,我们可以执行以下命令:
[root@localhost ~]# jq '.[].name' employee.json
"John Brooks"
"Randy Park"
"Todd Gray"
总 结
END