Maison >Tutoriel système >Linux >Exemples d'utilisation des commandes JQ sous Linux
JSON est un format de représentation de données utilisé pour stocker et transférer des données entre différentes couches d'une application. Il stocke les données dans des paires clé:valeur. Dans cet article, nous apprendrons à utiliser les commandes JQ pour manipuler et traiter les données JSON dans le shell.
Utilisez la commande suivante pour installer jq
sur Centos8 :
[root@localhost ~]# dnf -y install jq
Nous pouvons maintenant commencer à utiliser la commande JQ car elle a été installée avec succès sur notre système, mais jetons d'abord un coup d'œil à la syntaxe de la commande JQ :
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
La commande JQ peut être utilisée de différentes manières : elle peut être utilisée directement sur des fichiers JSON ou combinée avec plusieurs autres commandes pour interpréter les données JSON. Les commandes JQ peuvent être utilisées avec différents filtres tels que les filtres ".", "|", "," ou ".[]" pour organiser les données JSON.
La commandeJQ prend également différentes options en tant que paramètres tels que –tab, –stream, –indent n, –unbuffered et l'option de répertoire -L. La syntaxe des commandes JQ peut sembler compliquée au début, mais vous vous y familiariserez après avoir lu l'intégralité de l'article.
La fonctionnalité la plus simple et la plus couramment utilisée du filtre de commande JQ. Ils sont utilisés pour organiser et embellir les données JSON lors de leur impression sur une sortie standard.
Dans cet exemple, nous avons un fichier JSON appelé Employee.json et nous devons afficher les données sur la sortie standard :
{"workers":{"name": "John Brooks","id": "003"}}
Nous pouvons utiliser la commande cat pour afficher les données :
[root@localhost ~]# cat employee.json {"workers":{"name": "John Brooks","id": "003"}}
Les données imprimées sur la sortie standard à l'aide de la commande cat sont désorganisées et déroutantes. Nous pouvons utiliser les commandes JQ et "." pour organiser ces données, et utiliser .
pour filtrer :
[root@localhost ~]# jq '.' employee.json { "workers": { "name": "John Brooks", "id": "003" } }
Désormais, les données sont plus organisées, colorées et plus faciles à comprendre. Ce filtre est particulièrement nécessaire lors de l'accès aux données d'une API ; les données stockées dans l'API peuvent être très désorganisées et déroutantes.
.字段
Les filtres et les commandes JQ peuvent être utilisés pour accéder aux propriétés des objets dans le shell.
Si nous voulons uniquement accéder à une seule propriété et l'imprimer sur la sortie standard, nous pouvons utiliser l'opérateur .字段
. Par exemple, pour accéder aux propriétés d'un travailleur on peut utiliser la commande suivante :
[root@localhost ~]# jq '.workers' employee.json { "name": "John Brooks", "id": "003" }
Nous pouvons également accéder aux éléments présents dans les propriétés en utilisant l'opérateur .字段
. Pour accéder à l'élément de nom dans l'attribut travailleur, nous utiliserons :
[root@localhost ~]# jq '.workers.name' employee.json "John Brooks"
Nous pouvons également accéder et afficher les éléments présents dans le tableau dans le fichier JSON en utilisant l'opérateur .[]
. Pour cet exemple, nous allons modifier notre fichier JSON et ajouter ce qui suit :
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
Vérifiez le fichier employe.json :
[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"
JQ 命令用于将 JSON 数据转换为更易读的格式并将其打印到 Linux 上的标准输出。JQ 命令是围绕过滤器构建的,过滤器用于从 JSON 文件中仅查找和打印所需的数据。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!