3 points par GN⁺ 2024-03-20 | 1 commentaires | Partager sur WhatsApp
  • jnv_jnv_ pour explorer du JSON

    • jnv_jnv_ fournit un visualiseur JSON interactif et un éditeur de filtres jq.
    • Conçu en s’inspirant de jid et jiq.
  • Fonctionnalités

    • Visualiseur JSON interactif et éditeur de filtres jq avec coloration syntaxique JSON.
    • Peut récupérer du JSON depuis l’entrée standard (stdin), des fichiers ou des URL.
    • Prise en charge de l’autocomplétion des filtres.
    • Types de filtres pris en charge : Identity, Object Identifier-Index, Array Index.
    • Fournit des messages d’aide pour l’évaluation des filtres.
  • Installation

    • Installation via Homebrew : brew install ynqa/tap/jnv
    • Installation via Cargo :
      • Prérequis : automake
      • Commande d’installation : cargo install jnv
    • jnv n’exige pas que l’utilisateur installe jq sur son système, car il utilise j9, un binding Rust.
  • Exemples

    • Lire depuis un fichier : jnv data.json
    • Lire depuis l’entrée standard : cat data.json | jnv
  • Raccourcis clavier

    • Ctrl + C : quitter jnv
    • Tab : autocomplétion du filtre jq
    • Touches fléchées et combinaisons avec Ctrl : déplacement du curseur et suppression de caractères du filtre
    • Enter : basculer l’expansion/la réduction dans le visualiseur JSON
    • Ctrl + P/N : étendre/réduire tous les replis dans le visualiseur JSON
  • Utilisation

    • Explorateur JSON et filtre interactif utilisant jq.
    • Exemple d’utilisation : jnv [OPTIONS] [INPUT]
    • Options :
      • Définir le mode d’édition : insert ou overwrite
      • Ajuster le format d’affichage du JSON : modifier le niveau d’indentation
      • Afficher ou non les indices : afficher des indices fournissant des suggestions ou des guides à l’utilisateur
      • Définir la profondeur d’expansion initiale : profondeur d’expansion initiale des nœuds JSON
      • Contrôler la longueur de la liste de suggestions : ajuster la longueur de la liste de suggestions pour permettre à l’utilisateur de faire ses choix plus efficacement

L’avis de GN⁺

  • jnv_jnv_ est un outil qui permet d’explorer et de filtrer facilement des données JSON, particulièrement utile pour les développeurs qui manipulent de grands jeux de données.
  • Cet outil rend le puissant jq plus efficace à utiliser grâce à une interface conviviale pour le traitement des données JSON.
  • jnv_jnv_ étant implémenté en Rust, il peut offrir des avantages en matière de performances et de stabilité, et le fait qu’il ne soit pas nécessaire d’installer jq séparément sur le système est aussi un atout.
  • Parmi les autres outils offrant des fonctions similaires, on peut citer des outils de test d’API comme Postman ou Insomnia, mais ils sont principalement axés sur les tests d’API et sont donc moins spécialisés que jnv_jnv_ pour l’exploration pure de JSON.
  • Lors de l’adoption de jnv_jnv_, il faut prendre en compte l’intuitivité de l’interface utilisateur et les limites des fonctions de filtrage ; si un traitement JSON complexe est nécessaire, il peut aussi être utile d’apprendre séparément les scripts jq.

1 commentaires

 
GN⁺ 2024-03-20
Commentaires Hacker News
  • Très sympa, quelques remarques :

    • très lent sur un JSON de taille moyenne (16 Mo)
    • la police est trop sombre (PR soumise)
    • en cherchant une alternative performante, je suis tombé sur fx, un visualiseur JSON rapide sans les fonctionnalités de jq (fx.wtf)
  • Ça a l’air vraiment intéressant — je vais clairement aller voir.

    • jusqu’ici, j’utilisais jq et up pour faire des requêtes interactives, mais je n’aime pas l’UX de up (surtout pour les longues requêtes ou les données non ASCII)
    • je suis très intéressé par une alternative
  • Vraiment génial !! Je l’installerai dès que j’aurai mon laptop sous la main.

    • j’ai été immédiatement attiré par le post parce que j’ai créé quelque chose de similaire
    • je me demande s’il serait possible de généraliser l’idée pour que davantage de commandes en CLI disposent d’une interface interactive
    • j’imagine depuis longtemps un « constructeur de commandes » qui pourrait charger la documentation pertinente selon la position du curseur et l’afficher pendant qu’on édite la ligne de commande
  • Vraiment sympa ! Ça ressemble beaucoup à jless.

  • Il m’arrive parfois de me dire que ce serait bien de pouvoir chercher dans une sortie JSON depuis le navigateur ou un IDE.

    • mais le problème n’est pas assez urgent pour que j’y consacre du temps
  • Si vous utilisez Emacs, il y a aussi jq-mode.

    • mais la complétion automatique des filtres de jnv est vraiment une fonctionnalité décisive
    • jq-mode
  • Vraiment sympa ; ce qui m’a toujours frustré avec jq, c’est qu’on ne peut pas voir quelles données on va obtenir avant de lancer la recherche dans les données.

  • Si vous utilisez Sublime Text, il existe un plugin qui permet de faire ça.

    • précision : j’ai écrit ce plugin il n’y a pas longtemps
    • plugin Jq
  • J’aimerais que tout le monde connaisse l’alternative « fx ».

    • on peut faire davantage de choses comme map, filter, reduce, etc., et sa sémantique est plus proche de ce que l’on connaît déjà
    • prend aussi en charge YAML
    • Bien débuter avec fx
  • Très sympa. Je ne sais pas si j’en demande trop, mais serait-il possible de l’adapter pour qu’il fonctionne aussi avec OjG, qui utilise JSONPath au lieu de la syntaxe jq ?

    • je suis prêt à aider
    • désolé si cela semble impoli