Maison > Tutoriel système > Linux > Exemples d'utilisation des commandes JQ sous Linux

Exemples d'utilisation des commandes JQ sous Linux

PHPz
Libérer: 2024-02-10 21:12:12
avant
541 Les gens l'ont consulté

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.

Comment installer la commande JQ

Utilisez la commande suivante pour installer jq sur Centos8 :

[root@localhost ~]# dnf -y install jq
Copier après la connexion
Linux 中的 JQ 命令使用实例

Langue

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...]
Copier après la connexion

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 commande

JQ 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.

Comment utiliser les commandes JQ pour organiser les données JSON

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"}}
Copier après la connexion

Nous pouvons utiliser la commande cat pour afficher les données :

[root@localhost ~]# cat employee.json 
{"workers":{"name": "John Brooks","id": "003"}}
Copier après la connexion
Linux 中的 JQ 命令使用实例

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"
  }
}
Copier après la connexion
Linux 中的 JQ 命令使用实例

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.

Comment accéder aux propriétés à l'aide des commandes JQ

.字段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"
}
Copier après la connexion
Linux 中的 JQ 命令使用实例

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"
Copier après la connexion
Linux 中的 JQ 命令使用实例

Comment accéder aux éléments du tableau à l'aide des commandes JQ

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"}]
Copier après la connexion

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"}]
Copier après la connexion
Linux 中的 JQ 命令使用实例

要输出 JSON 文件中存在的所有数组,我们将运行以下命令:

[root@localhost ~]# jq '.[]' employee.json 
{
  "name": "John Brooks",
  "id": "003"
}
{
  "name": "Randy Park",
  "id": "053"
}
{
  "name": "Todd Gray",
  "id": "009"
}
Copier après la connexion
Linux 中的 JQ 命令使用实例

要仅输出第二个数组,我们可以通过以下方式修改上述命令:

[root@localhost ~]# jq '.[1]' employee.json 
{
  "name": "Randy Park",
  "id": "053"
}
Copier après la connexion
Linux 中的 JQ 命令使用实例

请记住,数组从索引 0 开始的。

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

[root@localhost ~]# jq '.[2].name' employee.json 
"Todd Gray"
Copier après la connexion
Linux 中的 JQ 命令使用实例

类似地,要访问数组中的所有名称属性,我们可以执行以下命令:

[root@localhost ~]# jq '.[].name' employee.json 
"John Brooks"
"Randy Park"
"Todd Gray"
Copier après la connexion
Linux 中的 JQ 命令使用实例

总 结

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!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal