3 pontos por GN⁺ 2024-03-20 | 1 comentários | Compartilhar no WhatsApp
  • jnv_jnv_ para explorar JSON

    • O jnv_jnv_ oferece um visualizador interativo de JSON e um editor de filtros jq.
    • Foi projetado com inspiração no jid e no jiq.
  • Recursos

    • Visualizador interativo de JSON e editor de filtros jq com destaque de sintaxe JSON.
    • Pode receber JSON da entrada padrão (stdin), de arquivos e de URLs.
    • Suporte a autocompletar de filtros.
    • Tipos de filtro compatíveis: Identity, Object Identifier-Index, Array Index.
    • Fornece mensagens de dica para avaliação de filtros.
  • Como instalar

    • Instalação via Homebrew: brew install ynqa/tap/jnv
    • Instalação via Cargo:
      • Requisito necessário: automake
      • Comando de instalação: cargo install jnv
    • O jnv não exige que o usuário instale jq no sistema, pois usa o j9, um binding em Rust.
  • Exemplos

    • Ler de um arquivo: jnv data.json
    • Ler da entrada padrão: cat data.json | jnv
  • Mapeamento de teclas

    • Ctrl + C: sair do jnv
    • Tab: autocompletar do filtro jq
    • Teclas de seta e combinações com Ctrl: mover o cursor e apagar caracteres do filtro
    • Enter: alternar expandir/recolher no visualizador de JSON
    • Ctrl + P/N: expandir/recolher todas as dobras no visualizador de JSON
  • Uso

    • Explorador de JSON e filtro interativo com jq.
    • Exemplo de uso: jnv [OPTIONS] [INPUT]
    • Opções:
      • Definir o modo de edição: "insert" ou "overwrite"
      • Ajustar o formato de exibição do JSON: alterar o nível de indentação
      • Exibir dicas ou não: mostrar dicas que oferecem sugestões ou orientação ao usuário
      • Definir a profundidade inicial de expansão: profundidade inicial de expansão dos nós JSON
      • Controlar o tamanho da lista de sugestões: ajustar o tamanho da lista de sugestões para permitir uma seleção mais eficiente

Opinião do GN⁺

  • O jnv_jnv_ é uma ferramenta que facilita a exploração e a filtragem de dados JSON, sendo especialmente útil para desenvolvedores que lidam com grandes conjuntos de dados.
  • A ferramenta oferece o poder do jq em uma interface amigável, tornando o processamento de dados JSON mais eficiente.
  • Como o jnv_jnv_ é implementado em Rust, pode ter vantagens em desempenho e estabilidade, além de não exigir a instalação separada do jq no sistema.
  • Outras ferramentas com recursos semelhantes incluem ferramentas de teste de API como Postman e Insomnia, mas elas são focadas principalmente em testes de API e são menos especializadas em exploração pura de JSON como o jnv_jnv_.
  • Ao adotar o jnv_jnv_, é preciso considerar a intuitividade da interface e as limitações dos recursos de filtragem; em casos que exijam processamento complexo de JSON, talvez seja necessário aprender scripts jq separadamente.

1 comentários

 
GN⁺ 2024-03-20
Comentários do Hacker News
  • Muito legal, uma pequena observação:

    • é muito lento para JSONs de tamanho médio (16 MB)
    • a fonte está escura demais (enviei um PR)
    • procurando uma alternativa com bom desempenho, encontrei o fx, um visualizador de JSON rápido, embora sem os recursos do jq (fx.wtf)
  • Parece realmente interessante — vou conferir com certeza.

    • até agora tenho usado jq e up para fazer consultas interativas, mas não gosto da UX do up (especialmente para consultas longas ou dados não ASCII)
    • tenho bastante interesse em encontrar um substituto
  • Muito legal!! Vou instalar assim que pegar meu laptop.

    • fui imediatamente atraído pelo post porque fiz algo parecido
    • fico pensando se seria possível generalizar a ideia para que mais comandos na CLI possam ter interfaces interativas
    • há muito tempo imagino um "construtor de comandos" que pudesse buscar a documentação apropriada com base na posição do cursor e mostrá-la enquanto você edita a linha de comando
  • Muito legal! Parece muito com o jless.

  • Às vezes penso que seria bom poder pesquisar dentro da saída JSON no navegador ou na IDE.

    • mas o problema não é urgente o suficiente para investir tempo nisso
  • Se você usa Emacs, também existe o jq-mode.

    • mas o recurso de autocompletar filtros do jnv é realmente um ótimo diferencial
    • jq-mode
  • Muito legal, o que sempre me frustrou ao usar jq é que você não consegue ver que dados vai obter até pesquisar os dados.

  • Se você usa Sublime Text, existe um plugin que torna isso possível.

    • aviso: escrevi esse plugin recentemente
    • plugin Jq
  • Queria que todo mundo conhecesse a alternativa "fx".

    • dá para fazer muito mais, como map, filter, reduce etc., e a semântica é mais próxima do que você já conhece
    • também suporta YAML
    • Começando com fx
  • Muito legal. Não sei se é pedir demais, mas seria possível adaptar isso para também funcionar com o OjG, que usa JSONPath em vez da sintaxe do jq?

    • estou disposto a ajudar
    • peço desculpas se isso foi rude