乐趣区

关于nginx:Linux-中的-JQ-命令使用实例

JSON 是一种数据表示格局,用于在应用程序的不同层之间存储和传输数据;它将数据存储在键:值对中。在文章中,咱们将学习应用 JQ 命令在 shell 中操作和解决 JSON 数据。
如何装置 JQ 命令
在 Centos8 中应用上面命令装置 jq:

[root@localhost ~]# dnf -y install jq
Linux 中的 JQ 命令应用实例 Linux 中的 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 命令来显示数据:

[root@localhost ~]# cat employee.json
{“workers”:{“name”: “John Brooks”,”id”: “003”}}
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
应用 cat 命令打印到规范输入的数据是无组织和凌乱的。咱们能够应用 JQ 命令和“.”来组织这些数据,应用. 来筛选:

[root@localhost ~]# jq ‘.’ employee.json
{
“workers”: {

"name": "John Brooks",
"id": "003"

}
}
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
当初,数据变得更有条理、色调丰盛且更易于了解。从 API 拜访数据时尤其须要此过滤器;API 中存储的数据可能十分无组织且令人困惑。

如何应用 JQ 命令拜访属性
. 字段过滤器和 JQ 命令可用于拜访 shell 中的对象属性。

如果咱们只想拜访单个属性并将其打印到规范输入,那么咱们能够应用. 字段运算符。例如,要拜访工人的属性,咱们能够应用以下命令:

[root@localhost ~]# jq ‘.workers’ employee.json
{
“name”: “John Brooks”,
“id”: “003”
}
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
咱们还能够应用. 字段运算符拜访属性中存在的我的项目。要拜访工人属性中的名称项,咱们将应用:

[root@localhost ~]# jq ‘.workers.name’ employee.json
“John Brooks”
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例

如何应用 JQ 命令拜访数组项
咱们还能够应用 .[] 运算符拜访和输入 JSON 文件中数组中存在的元素。对于这个例子,咱们将批改咱们的 JSON 文件,增加上面内容:

[{“name”: “John Brooks”,”id”: “003”},{“name”: “Randy Park”,”id”: “053”},{“name”: “Todd Gray”,”id”: “009”}]
查看一下 employee.json 文件:
www.ccidnet.com/2016/0822/10173006.shtml
www.donews.com/news/detail/4/2970162.html
www.51cto.com/it/news/2020/0113/18299.html
www.donews.com/news/detail/4/2971720.html
[root@localhost ~]# cat employee.json
[{“name”: “John Brooks”,”id”: “003”},{“name”: “Randy Park”,”id”: “053”},{“name”: “Todd Gray”,”id”: “009”}]
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
要输入 JSON 文件中存在的所有数组,咱们将运行以下命令:

[root@localhost ~]# jq ‘.[]’ employee.json
{
“name”: “John Brooks”,
“id”: “003”
}
{
“name”: “Randy Park”,
“id”: “053”
}
{
“name”: “Todd Gray”,
“id”: “009”
}
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
要仅输入第二个数组,咱们能够通过以下形式批改上述命令:

[root@localhost ~]# jq ‘.[1]’ employee.json
{
“name”: “Randy Park”,
“id”: “053”
}
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
请记住,数组从索引 0 开始的。

咱们还能够应用 . 字段 运算符拜访数组中存在的属性。例如,如果咱们想拜访第三个数组中的 name 属性,那么咱们将运行以下命令:

[root@localhost ~]# jq ‘.[2].name’ employee.json
“Todd Gray”
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例
相似地,要拜访数组中的所有名称属性,咱们能够执行以下命令:

[root@localhost ~]# jq ‘.[].name’ employee.json
“John Brooks”
“Randy Park”
“Todd Gray”
Linux 中的 JQ 命令应用实例 Linux 中的 JQ 命令应用实例

总结
JQ 命令用于将 JSON 数据转换为更易读的格局并将其打印到 Linux 上的规范输入。JQ 命令是围绕过滤器构建的,过滤器用于从 JSON 文件中仅查找和打印所需的数据。

退出移动版