Transformez JSON et rendez-le lisible avec jq

JavaScript Object Notation (JSON) n’est que l’un des formats d’information les plus appréciés au monde. Il a une assistance étendue et aussi une spécification de base. Il est simple de travailler avec plusieurs langages de programmes, en particulier ceux ciblant le développement Web.

Mais l’inspection pratique des données JSON reste désagréable. Bien qu’il s’agisse d’un style de message lisible par l’homme, un jeu de données JSON peut être constitué de quantités importantes de données. Les sources ne présentent pas toujours JSON sous une forme facile à lire.

javaLe jq permet aux utilisateurs de styliser, filtrer et modifier les informations JSON.

Qu’est-ce que jq?

Puisqu’il s’agit d’un appareil de ligne de commande, vous utiliserez normalement jq en transformant les régulations en un incurable. Il existe également un terrain de jeu en ligne exceptionnel, que nous couvrons dans encore plus d’informations ci-dessous.

La procédure normale se concentre sur les filtres ainsi que sur l’application d’un filtre à certains JSON d’entrée. Vous pouvez utiliser jq pour apporter une chose solitaire à partir d’un ensemble de lots. Ou vous pouvez éliminer des champs spécifiques de chaque produit d’une collection, simplifiant ainsi les informations. Vous pouvez également effectuer des procédures complexes pour assimiler l’entrée à un type différent.

Comment télécharger et aussi installer jq

Le programme jq n’a pas de dépendances externes, ce qui signifie qu’il est très facile de commencer. Commencez par télécharger un binaire exécutable pour Linux, macOS ou Windows en utilisant le bouton sur le page d’accueil jq . Une fois le programme téléchargé, vous pouvez l’exécuter directement à partir de la ligne de commande. Vous pourriez avoir l’intention de le réétiqueter ( mv jq-osx-amd64 jq ) pour plus de confort, et vous devrez peut-être également le rendre exécutable ( chmod +x jq ).

Confirmez que vous pouvez exécuter jq en l’exécutant depuis la ligne de commande sans aucun argument :

Vous devriez voir quelques informations générales sur l’utilisation, en commençant par un simple résumé d’une ligne comme celui-ci :

Si vous vous battez avec la technique ci-dessus, il existe des options. L’application logicielle jq a une assistance pour les superviseurs de plan typiques, et vous pouvez également essayer en permanence le bac à sable en ligne en attendant.

Voir aussi :  Comment implémenter un système de dialogue dans Pygame

Utilisation de base de jq

L’utilisation typique est :

Ainsi, à titre d’exemple :

Vous pouvez également canaliser l’entrée via une autre commande ainsi :

Ceci est particulièrement utile lorsque, par exemple, la première commande ressemble à un appel à boucle qui peut apporter des données JSON à partir d’une solution Web.

Le filtre reçu ces exemples est le plus simple possible, . (une période) , qui imprime l’entrée dans un type embelli. C’est déjà assez utile, mais les filtres de jq offrent bien plus de puissance que cela.

Comment appliquer des filtres de base à JSON à l’aide de jq

Un filtre jq est un peu comme un sélecteur CSS ou une expression XPATH. C’est une longue expression composée de parties plus petites. Un filtre complet peut sembler complexe, mais une fois que vous avez découvert l’essentiel, chaque composant doit être raisonnable.

Travailler avec des objets

Vous pouvez apporter la valeur d’un bâtiment d’objet en utilisant le . propriété résidentielle structure de phrase :

Cela peut s’enchaîner pour accéder à des structures profondément imbriquées :

Travailler avec des tableaux

La procédure de plage la plus basique renvoie un composant via son index :

Notez que, comme la plupart des langages de programmation, jq indexe les sélections à partir du paramètre 0. Vous pouvez également découper un sous-tableau en utilisant cette syntaxe :

Sans index à l’intérieur des accolades, jq transforme une valeur de variété unique en ses propres composants, sous forme de valeurs multiples :

Il s’agit d’une approche vitale pour enchaîner les filtres les uns avec les autres, que nous révélerons plus tard.

Fonctionnalités plus avancées

Vous ne pouvez acquérir une compréhension complète du pouvoir de jq qu’en examinant le manuel jq . En fait, la prise en charge par jq des opérateurs, des variables et même des fonctions définies par l’utilisateur le rend capable d’agir comme n’importe quel type de langage de programmation.

Voir aussi :  Comment valider les formulaires HTML à l'aide d'expressions régulières

Ces caractéristiques rendent possible une utilisation innovante, quoique rendue complexe. Pourtant, jq possède certaines fonctionnalités intégrées, telles que des fonctions et des pilotes, qui profitent même aux tâches les plus simples. Voici un exemple :

Ce filtre alimente l’entrée directement dans le ajouter aussi bien que longueur caractéristiques, séparant les résultats. En fonctionnement, il calcule la norme d’un tableau de nombres.

L’opérateur de division peut en outre agir sur les chaînes pour les diviser en fonction d’un séparateur :

le sélectionner work filtre un tableau, en ne conservant que les produits qui passent une restriction fournie :

Notez qu’il s’agit également d’une instance du pilote de pipe de jq ( | ) qui ressemble à un tuyau d’obus. Il alimente le résultat de son filtre de gauche comme entrée de son filtre de droite.

le carte fonction est très bénéfique lorsque vous travaillez avec des variétés. Il exécute une opération sur chaque composant de la gamme plutôt que sur toute la variété elle-même :

Vous l’utiliserez souvent en combinaison avec un médiator, par exemple

Tout mettre ensemble : un exemple pratique de jq

Étant donné que jq traite tout type de JSON valide, vous pouvez lui envoyer le résultat à partir du boucle commander. Cela vous permet d’importer JSON à partir d’une URL et de l’affiner rapidement sur la ligne de commande :

Flux JSON est un choix JSON pour les styles RSS et Atom. Le site Web NPR est un exemple qui prend en charge le flux JSON, mais il est difficile de voir à partir de la source et se compose d’une grande quantité de données :

Tout de suite, vous pouvez voir à quel point il est plus simple de passer en revue en apportant ces données ainsi qu’en les canalisant avec jq :

Alimentation NPR embellie

Voici une instance plus complète d’un filtre qui récupère l’identifiant, le titre et la date de chaque conte que le site Web a publié un mardi.

Après avoir choisi le éléments bâtiment, ce filtre utilise . à répéter sur chaque produit. La majeure partie du filtre utilise le sélectionner fonction pour ne garder que les articles avec un Date publiée valeur dont le jour de la semaine ( strftime(« % a ») ) est Mar . le strftime fonction appelle un jour extrêmement spécialement formaté que le filtre . + « Z » construit.

Voir aussi :  Comment ajouter et soustraire deux matrices en C++, Python et JavaScript

Après avoir choisi les choses voulues, le filtre final développe un objet chacun avec les champs demandés. Gardez à l’esprit qu’à chaque ajustement du flux, les résultats varient. Voici un exemple pris au moment du magazine :

Comment traiter JSON en ligne à l’aide de jqplay

Si vous voulez essayer jq avant de le télécharger, jqplay est l’endroit idéal pour commencer. Via une interface utilisateur simple, le site vous permet d’accéder à un exemple de JSON ainsi qu’à un filtre, puis de voir le résultat.

Il vous permet également d’essayer plusieurs options différentes. Ceux-ci inclus — sortie compacte (pour se débarrasser des espaces blancs) et aussi — entrée nulle (pour afficher le résultat sur l’entrée manquante).

L’interface se compose également d’une section de feuille de triche très précieuse. Voici une capture d’écran de l’instance longue précédente :

Une capture d'écran du terrain de jeu en ligne jq play

Notez que, tout comme ce lien, vous pouvez également partager des instances au moyen d’une URL.

Utilisez jq pour lire et également manipuler des données JSON

Vous pouvez découvrir des informations complètes concernant jq à partir du didacticiel et du manuel, tous deux disponibles sur le site Internet de jq. Le programme lui-même offre un montant limité utile en utilisant le — aide alternative.

Si vous souhaitez effectuer des filtres de base et également des relookings ou revoir une grande partie de JSON, jq est un outil précieux.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *