Commande JQ dans Linux avec des exemples

Commande JQ dans Linux avec des exemples

JSON est un format de représentation des données utilisé pour stocker et transférer des données entre les différentes couches d'une application; Il stocke les données dans la clé: Paies de valeur.

La syntaxe de JSON a été dérivée de JavaScript mais elle est elle-même indépendante du langage. Il est compatible avec de nombreux langages de programmation; Ces langues incluent le code qui peut être utilisé pour intégrer JSON dans le programme; Mais malheureusement, nous ne pouvons pas travailler avec JSON directement dans Linux Shell car il ne peut pas l'interpréter. Pour travailler avec JSON dans la coque Linux, nous utilisons un mélange d'outils tels que JQ et SED.

Ce message nous apprendra à utiliser la commande JQ pour manipuler et travailler avec les données JSON dans un shell Linux.

Comment installer la commande jq

La commande JQ n'est pas disponible dans certaines distributions Linux par défaut; Il doit être téléchargé dans le système avant de pouvoir être utilisé sur le terminal; Vous pouvez télécharger la commande JQ comme n'importe quel autre package sur votre système. Sur Ubuntu 20.04 Utilisez la commande ci-dessous pour installer l'utilitaire JQ:

sudo apt installer jq  

Remplacez simplement APT par le gestionnaire de packages de votre système si vous exécutez une distribution autre que Ubuntu.

Si vous exécutez une distribution comme Centos 8 qui a déjà JQ par défaut, vous obtiendrez une sortie similaire à ceci:

sudo dnf installer jq  

Syntaxe

Maintenant, nous pouvons commencer à utiliser la commande JQ car elle a été installée avec succès sur notre système, mais d'abord, jetons un coup d'œil à la syntaxe de la commande JQ:

JQ [Options] [Fichier…] JQ [Options] --Args [Strings…] JQ [Options] --jsonargs [JSON_Texts…] 

La commande JQ peut être utilisée de différentes manières; Il peut être utilisé directement sur un fichier JSON et peut également être combiné avec plusieurs autres commandes pour interpréter les données JSON. La commande JQ peut être utilisée avec différents filtres tels que le ".»,« | »,«, » ou la ".[] » Filtre pour organiser les données JSON.

La commande JQ prend également différentes options comme des arguments tels que le --languette, --flux, --indent n, --non frappé, et le -L Option de répertoire. La syntaxe de la commande JQ peut sembler complexe au début, mais vous vous en familia une fois que vous aurez lu l'article entier.

Comment organiser les données JSON à l'aide de la commande JQ

La fonction la plus simple et la plus fréquemment utilisée des filtres de commande JQ. Ils sont utilisés pour organiser et emporter des données JSON lors de l'impression à la sortie standard.

  • Dans cet exemple, nous avons un fichier JSON nommé employé.json Et nous devons sortir les données de la sortie standard: "Workers": "Name": "John Brooks", "ID": "003"
    1"Workers": "Name": "John Brooks", "ID": "003"

  • Nous pouvons utiliser la commande CAT pour afficher les données:
    employé de chat.json 

  • Les données imprimées à la sortie standard à l'aide de la commande CAT ne sont pas organisées et désordonnées. Nous pouvons organiser ces données en utilisant la commande JQ avec le '.' filtre:
    JQ '.' employé.json 

Maintenant, les données sont devenues beaucoup plus organisées, colorées et plus faciles à comprendre. Ce filtre est particulièrement nécessaire lors de l'accès aux données des API; Les données stockées dans les API peuvent être très non organisées et déroutantes.

Comment accéder à une propriété à l'aide de la commande JQ

Le .champ Le filtre avec la commande JQ peut être utilisé pour accéder aux propriétés des objets dans le shell.

  • Si nous voulons uniquement accéder et imprimer une seule propriété à la sortie standard, nous pouvons utiliser le .champ opérateur. E.g Pour accéder à la propriété du travailleur, nous pouvons utiliser cette commande:
    JQ '.employé des travailleurs.json 

  • Nous pouvons également accéder aux éléments présents dans la propriété en utilisant le .champ opérateur. Pour accéder à l'élément de nom dans la propriété du travailleur, nous utiliserons:
    JQ '.ouvriers.Nom 'Employé.json 

Comment accéder à un élément de tableau à l'aide de la commande JQ

Nous pouvons également accéder et sortir les éléments présents dans un tableau dans un fichier JSON en utilisant le .[] opérateur. Pour cet exemple, nous allons modifier notre fichier JSON, il ressemble donc à ceci:

["Name": "John Brooks", "ID": "003", "Name": "Randy Park", "ID": "053", "Name": "Todd Gray", " id ":" 009 "]
1["Name": "John Brooks", "ID": "003", "Name": "Randy Park", "ID": "053", "Name": "Todd Gray", " id ":" 009 "]
  1. Pour produire tous les tableaux présents dans le fichier JSON, nous exécuterons la commande ci-dessous:
    JQ '.[]' employé.json 

  2. Pour sortir uniquement le deuxième tableau, nous pouvons modifier la commande ci-dessus de la manière suivante:
    JQ '.[1] 'Employé.json 

  3. N'oubliez pas que le tableau commence à 0

    Nous pouvons également accéder aux propriétés présentes dans le tableau en utilisant le .opérateur de terrain. E.G Si nous voulons accéder à la propriété du nom dans le troisième tableau, nous exécuterons la commande suivante:

    JQ '.[2].Nom 'Employé.json 

  4. De même, pour accéder à toutes les propriétés du nom à l'intérieur des tableaux, nous pouvons exécuter cette commande:
    JQ '.[].Nom 'Employé.json  

Conclusion

La commande JQ est utilisée pour transformer les données JSON en un format plus lisible et l'imprimer en sortie standard sur Linux. La commande JQ est construite autour de filtres qui sont utilisés pour trouver et imprimer uniquement les données requises d'un fichier JSON.

Dans ce guide pratique, nous avons appris à utiliser la commande JQ pour organiser et filtrer les données JSON.