Outils JSON

jq playgroundDu filtre à la commande prête à reprendre

Exécutez jq sur du JSON ou du texte. Choisissez le mode de lecture, examinez stdout et reprenez le programme dans votre shell.

jq playground

Entrée JSON / texte

Programme jq

Résultat

Aperçu par blocs de 5 000 caractères. Copie et téléchargement incluent le résultat complet.

Entrée et programme restent en mémoire dans le navigateur, sans historique enregistré.

Options autorisées : -c -r -j -S -a -e, combinaisons courtes et alias longs. Choisissez -s/-R/-n dans le mode d’entrée.

jq 1.8.2 · WebAssembly local · exécution manuelle

Résultat périmé : copie et téléchargement désactivés.

Shell POSIX uniquement. Enregistrez d’abord l’entrée dans input.json ; la commande copiée ne contient pas vos données.

Le jq playground aide à ne garder que les champs utiles d’une réponse API. Essayez une condition avec select, remodelez les objets avec map et conservez l’entrée originale pour comparer.

Pour filtrer JSON ou transformer JSON, la forme du résultat compte autant que son contenu. Avant de reprendre jq en ligne de commande, vérifiez si le programme produit plusieurs valeurs, un tableau ou aucune sortie.

Pourquoi utiliser ce jq playground ?

Plusieurs valeurs ne forment pas un tableau

Le filtre .people[] | select(.age >= 18) | .name produit une chaîne par personne majeure. La sortie conserve ces valeurs séparées et leurs retours à la ligne : vous voyez ce que recevra le programme suivant.

Trois fiches traversent un filtre ; les deux fiches retenues apparaissent comme résultats distincts.

Rassembler les entrées au bon moment

Le jq playground applique -s avant votre programme afin de réunir toutes les entrées JSON dans un tableau. Entourer un filtre de crochets rassemble plutôt ses résultats pour chaque entrée courante.

Trois objets JSON séparés sont réunis dans un même tableau.

Définir la lecture des données avant le calcul

01

Distinguer flux JSON et texte brut

Le mode JSON lit des valeurs successives. Slurp les rassemble ; le mode brut lit le texte ligne par ligne, tandis que brut avec slurp lit une chaîne entière. Le mode null commence avec null, mais input et inputs peuvent encore lire les données fournies.

02

Vérifier les remplacements puis lancer

Importer un fichier, charger un exemple ou effacer ouvre d’abord un aperçu. Appliquer remplace les contenus et réglages indiqués ; une annulation restaure aussi le résultat précédent. Lancez avec le bouton ou Ctrl/Cmd+Entrée. Une modification bloque l’export jusqu’au prochain calcul.

03

Lire le code de retour avant d’exporter

Tous les codes de retour sont affichés. Un code non nul bloque l’export, même lorsque -e signale seulement false, null ou une absence de résultat. Retirez -e si nécessaire et relancez. La commande POSIX attend les mêmes données dans input.json.

Sélectionner, remodeler et contrôler les flux

Sélection et transformation

select conserve les enregistrements qui correspondent ; map produit un tableau d’éléments transformés. L’exemple compare des âges numériques et construit des objets avec un booléen adult. Une chaîne contenant des chiffres reste un autre type JSON.

Exécuter de vrais programmes jq

Le moteur WASM jq 1.8.2 prend en charge les pipes, reduce, def, la récursion, try/catch et les expressions régulières. Il exécute jq lui-même. Les modules sur fichier et les arguments CLI de fichiers supplémentaires ne sont pas exposés.

Régler la sortie texte

-r retire les guillemets JSON des chaînes, -j supprime les séparateurs de sortie, -c compacte le JSON, -S trie les clés et -a utilise les échappements ASCII. Les options courtes combinées et leurs alias longs sont acceptés ; les autres options sont refusées.

Garder stdout et séparer les diagnostics

Les espaces, un éventuel BOM initial et les caractères NUL restent dans le texte exporté. Les messages debug et stderr apparaissent séparément. L’aperçu s’étend par blocs de 5 000 caractères ; un export autorisé contient tout le résultat.

Comportement du moteur et limites de calcul

Taille des entrées et durée
L’entrée et les fichiers sont limités à 500 000 octets UTF-8, le programme à 8 000 octets. Les options occupent au maximum 256 caractères. Le chargement dispose de 15 secondes, puis l’exécution de 3 secondes. Arrêter termine le worker.
Budget mémoire et sortie
La mémoire linéaire WASM est plafonnée à 256 MiB ; ce n’est pas la mémoire totale du navigateur. stdout et stderr sont limités ensemble à 2 MiB. Un dépassement de temps, de pile, de mémoire ou de sortie ne fournit aucun résultat partiel exportable.
Nombres et clés dupliquées suivent jq
Aucun parseur JSON JavaScript ne traite l’entrée avant jq. Un grand nombre littéral non modifié peut conserver son écriture décimale ; les calculs en virgule flottante peuvent arrondir. Pour les clés dupliquées, jq garde la dernière valeur. Utilisez des chaînes pour les identifiants à préserver exactement.
Un code de retour ne garantit pas un type
Avec -e, false/null donne normalement le code 1, et aucune sortie le code 4. halt_error peut employer ces mêmes codes. Tout code non nul bloque donc tous les exports. stdout et les diagnostics restent consultables, mais l’aperçu peut être incomplet.
Un environnement limité
Pas d’éditeur --arg, de --stream, de --seq, d’import de module, d’explorateur de fichiers, de récupération d’URL ni de lien contenant les données. Les commandes utilisent les guillemets POSIX, pas la syntaxe PowerShell ou cmd. Les fonctions jq liées à l’environnement voient celui de WASM.

Questions sur le jq playground

Comment filtrer un tableau d’objets JSON avec jq ?

Pour l’exemple, utilisez .people[] | select(.age >= 18) | .name. [] émet chaque fiche, select conserve les correspondances et .name extrait le champ. Entourez le filtre entier de crochets si l’étape suivante attend un tableau.

Comment supprimer les guillemets doubles de la sortie jq pour traiter des fichiers JSON dans Bash ?

Ajoutez -r dans les options de sortie. Les chaînes perdent leurs guillemets JSON, mais gardent leurs espaces internes. Les objets et tableaux restent sérialisés en JSON. Utilisez -j uniquement si vous voulez également supprimer les séparateurs entre résultats.

Comment produire un tableau avec les résultats de select dans jq ?

Écrivez [.people[] | select(.age >= 18)]. Les crochets rassemblent les valeurs émises par le filtre. Sans correspondance, vous obtenez [] plutôt qu’un flux vide, ce qui peut changer le comportement de la commande suivante.

Comment réunir plusieurs objets JSON dans un tableau ?

Choisissez le mode de collecte JSON (-s), puis lancez . pour voir le tableau. Si les entrées sont elles-mêmes des tableaux, -s avec add permet de les concaténer. Fusionner des objets est différent : il faut décider quoi faire des clés dupliquées.

Comment convertir des paires key = value en JSON ?

Choisissez le mode lignes de texte (-R) et commencez par split("=") | {(.[0]): .[1]} pour des lignes simples. Retirez au besoin les espaces autour des clés et valeurs. Si une valeur contient un autre signe égal, adaptez le découpage : les formats de configuration n’ont pas tous les mêmes règles d’échappement.

Une requête est-elle mal traitée ?

Commencer par un petit exemple

Utilisez le jq playground pour comparer plusieurs résultats séparés avec map, puis reprenez le programme vérifié dans votre script.