Outils JSON

Testeur JMESPathsélectionner et recomposer les données

Lancez le filtre par âge avec le bouton ou Ctrl/Cmd+Enter. Après une modification, relancez la requête pour exporter.

Testeur JMESPath

JSON source

Résultat

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

JSON et expressions restent en mémoire dans le navigateur, sans enregistrement.

jmespath.js 0.16.0 officiel · Correctifs de sécurité · 26 fonctions standard

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

Ce Testeur JMESPath permet de vérifier une requête avant de la placer dans un script. Une réponse cloud peut contenir des dizaines de propriétés alors que vous avez seulement besoin des noms et du nombre de personnes.

Une Expression JMESPath produit une valeur JSON : tableau, objet ou scalaire. Les requêtes proposées aident à comparer une projection avec la construction d’un objet, sans modifier les données JSON de départ.

Pourquoi utiliser ce Testeur JMESPath ?

Séparer le filtre de la projection

Le filtre conserve les personnes qui respectent une condition, puis la projection extrait leurs noms. Une projection omet les résultats null : le nombre de valeurs obtenues peut donc différer du nombre d’éléments examinés.

Des enregistrements passent un filtre et leurs champs sélectionnés forment une liste réduite.

Préparer la structure attendue

Regroupez une liste de noms et un compteur dans le même objet, ou triez les enregistrements par propriété. Le Testeur JMESPath permet de contrôler les clés et les types que recevra ensuite votre programme.

Des champs composent un nouvel objet et une fonction réduit une collection à une valeur.

Vérifier les types avant de combiner

01

Fournir du JSON strict

Collez le texte ou importez un fichier local de 500 000 octets maximum. Le texte décodé est limité à 500 000 caractères. Importer, vider ou charger un exemple demande d’appliquer un aperçu de remplacement ; une annulation restaure aussi l’expression et le résultat. Les fichiers doivent être en UTF-8 valide. Un BOM n’est pas supprimé et provoque une erreur de validation JSON.

02

Déclencher chaque évaluation

L’exécution est manuelle ; Ctrl/Cmd+Enter fonctionne aussi. Choisir un exemple de requête change uniquement l’expression. Toute modification rend l’ancien résultat périmé et bloque son export jusqu’à une nouvelle réussite.

03

Distinguer aperçu et résultat

null, false, 0, une chaîne vide ou [] peuvent être des résultats valides. L’aperçu augmente par blocs de 5 000 caractères, tandis que la copie et le téléchargement incluent tout le résultat accepté.

Extraire, construire et calculer

Filtrer les éléments d’un tableau

people[?age >= `18`].name compare l’âge puis extrait les noms. Les accents graves encadrent le littéral numérique. Une chaîne contenant des chiffres reste différente d’un nombre.

Construire des champs nommés

{names: people[].name, count: length(people)} forme un objet distinct de la source. Une liste multisélection peut conserver des positions null qu’une projection supprimerait.

Enchaîner avec un tube

Le tube transmet le résultat complet de gauche à droite. Pour sort_by, &age est une référence d’expression, pas une chaîne donnant un nom de propriété. Chaque fonction attend des types d’arguments précis.

Identifier la cause des erreurs

JSON invalide, syntaxe incorrecte, fonction inconnue, nombre ou type d’arguments erroné sont signalés séparément. Une propriété absente peut en revanche produire null sans erreur.

Syntaxe prise en charge et limites

Une implémentation déterminée
Le moteur est jmespath.js 0.16.0 officiel avec correctifs de sécurité et 26 fonctions standard. JSONPath, jq, group_by, extensions regex, fonctions personnalisées et JavaScript arbitraire ne sont pas pris en charge. Les accents graves doivent contenir du JSON strict ; les chaînes brutes utilisent des apostrophes. Les références d’expression servent uniquement d’arguments, pas de valeurs de sortie.
Nombres à virgule flottante
Les clés répétées, commentaires et virgules finales sont refusés. Les entiers non sûrs et débordements dans l’entrée, les littéraux ou la sortie sont des erreurs. Les décimales utilisent les nombres JavaScript, sans calcul décimal exact ni conservation de leur écriture. Une somme intermédiaire non sûre dans sum ou avg est refusée même si le résultat mathématique final serait sûr.
Travail borné par requête
Limites : 500 000 caractères en entrée, 2 000 pour l’expression et 2 000 000 en sortie, avec budgets de structure et d’évaluation. Le Worker est arrêté après 2 secondes. Aucun résultat partiel n’est téléchargeable après un dépassement.
Pas de chemins d’origine
La sortie est une valeur JSON, pas une liste de chemins normalisés. La recherche récursive JSONPath, la modification de la source et l’export CSV ne sont pas proposés. Une propriété absente et une valeur null explicite peuvent se confondre.
Traitement en mémoire
Aucun historique n’est enregistré, aucune URL n’est chargée et aucun lien de partage contenant les données n’est créé. Les fichiers locaux restent traités dans le navigateur ; recharger la page efface le travail courant.

Questions sur le Testeur JMESPath

Comment obtenir plusieurs valeurs ?

Utilisez une liste ou un objet multisélection, par exemple {names: people[].name, count: length(people)}. Ce nouvel objet réunit une liste et un nombre sans réécrire le document original.

Comment renommer des propriétés dans une requête ?

Placez le nom voulu avant les deux-points : people[].{label: name} lit name et crée label dans chaque objet de sortie. Si name manque, sa valeur dans l’objet construit peut être null.

Comment filtrer un tableau avec une expression booléenne ?

people[?active == `true`].name conserve les personnes dont active est le booléen true. La chaîne 'true' n’est pas la même valeur. Combinez les conditions avec les opérateurs logiques de la langue.

Quelles fonctions sont disponibles ?

Ce Testeur JMESPath utilise les 26 fonctions standard de jmespath.js 0.16.0, dont length, sort_by, contains et sum. Les extensions comme group_by ne sont pas disponibles ; des types incompatibles produisent une erreur.

Comment fonctionnent les expressions de tube ?

people[].name | [0] produit d’abord la liste complète des noms, puis en sélectionne le premier élément. Ce tube transmet une valeur JSON et ne lance aucune commande système.

Une requête est-elle mal interprétée ?

Commencer par une petite requête

Essayez le Testeur JMESPath sur l’exemple, modifiez une condition, puis vérifiez le type du résultat avant de passer à votre réponse complète.