Aller au contenu
Tout en local

générateur de filtre jq

Transformez un document JSON en un filtre jq fonctionnel, avec aperçu sur vos données.

Entrée
Sortie

générateur de filtre jq

Collez un document JSON et cet outil liste chaque chemin de champ qu'il contient, dans la propre syntaxe de points et crochets de jq — .users[].email, .items[0].price, et ainsi de suite — afin que vous n'ayez pas à deviner la structure de données que vous n'avez pas écrite vous-même. Choisissez l'un de ces chemins, ou tapez le vôtre, et l'outil construit un filtre jq fonctionnel autour de celui-ci.

L'option opération contrôle quel type de filtre est construit. Sélectionner retourne la valeur ou les valeurs du chemin, une par ligne, exactement comme jq simple imprime un flux. Mapper enveloppe les mêmes valeurs dans un unique tableau JSON avec des crochets carrés. Filtrer nécessite un chemin se terminant par [] et une condition comme age > 18 ou status == "active" — il conserve uniquement les éléments qui correspondent, en utilisant select() sous le capot. Agréger pointe un array entier (sans [] à la fin) et rapporte son nombre, et — quand chaque élément est un nombre — la somme, le minimum et le maximum aussi ; ajoutez une condition pour agréger uniquement les éléments qui passent d'abord.

La sortie texte brut supprime les guillemets des résultats de chaîne, correspondant au flag -r de jq ; la sortie compacte effondre le JSON en une ligne au lieu d'une indentation de deux espaces. L'option version de syntaxe jq étiquette le filtre généré avec un commentaire pour jq 1.5, 1.6 ou 1.7 — utile quand vous épinglez un pipeline à une version spécifique — sans changer ce que l'aperçu calcule, puisque le sous-ensemble de jq que cet outil implémente se comporte de la même manière sur les trois. Les conditions supportent ==, !=, >, >=, <, <= et contains, et comparent contre des nombres, des chaînes, des booléens, null ou du texte entre guillemets.

Tout s'exécute localement dans votre navigateur : le JSON que vous collez, le filtre que vous construisez et le résultat qu'il produit ne quittent jamais votre appareil. Quand vous êtes satisfait du filtre, copiez le résultat, téléchargez-le en tant que fichier .txt, ou renvoyez la sortie dans l'entrée pour continuer à l'affiner.

FAQ

Est-ce que cela exécute un vrai binaire jq?
Non. Il implémente un sous-ensemble pratique de la syntaxe de chemin jq et des opérations en JavaScript, donc le même filtre que vous voyez ici peut nécessiter des ajustements pour les cas limites qu'une installation jq complète gérerait.
Pourquoi Filter a-t-il besoin d'un chemin se terminant par []?
Filtrer conserve ou supprime des éléments individuels d'un tableau, donc le chemin doit nommer une collection itérée — .users[] au lieu de .users. L'outil vous le dira si ce n'est pas le cas.
Qu'est-ce que le champ de condition accepte?
Un nom de champ plus un opérateur et une valeur, comme age > 18 ou status == "active", ou juste un opérateur et une valeur (> 10) pour comparer directement les éléments d'un tableau. Les opérateurs supportés sont ==, !=, >, >=, <, <= et contains.
Pourquoi Agréger ne montre-t-il un nombre que pour certains chemins?
La somme, le minimum et le maximum n'ont de sens que pour un tableau de nombres. Quand le tableau contient des objets — une liste d'utilisateurs, par exemple — vous obtenez toujours un nombre, éventuellement réduit par une condition d'abord.
Mon JSON est-il téléchargé quelque part?
Non. L'analyse, la découverte de chemin et le filtrage se produisent tous dans votre navigateur — votre document n'est jamais envoyé à un serveur.