3 puntos por GN⁺ 2024-03-20 | 1 comentarios | Compartir por WhatsApp
  • jnv_jnv_ para explorar JSON

    • jnv_jnv_ ofrece un visor interactivo de JSON y un editor de filtros jq.
    • Está diseñado con inspiración en jid y jiq.
  • Funciones

    • Visor interactivo de JSON y editor de filtros jq con resaltado de sintaxis JSON.
    • Puede recibir JSON desde la entrada estándar (stdin), archivos y URL.
    • Soporta autocompletado de filtros.
    • Tipos de filtro compatibles: Identity, Object Identifier-Index, Array Index.
    • Proporciona mensajes de ayuda para evaluar filtros.
  • Cómo instalarlo

    • Instalación con Homebrew: brew install ynqa/tap/jnv
    • Instalación con Cargo:
      • Requisito previo: automake
      • Comando de instalación: cargo install jnv
    • jnv no requiere que el usuario instale jq en el sistema, porque utiliza j9, un binding de Rust.
  • Ejemplos

    • Leer desde un archivo: jnv data.json
    • Leer desde la entrada estándar: cat data.json | jnv
  • Mapa de teclas

    • Ctrl + C: salir de jnv
    • Tab: autocompletar filtro jq
    • Teclas de flecha y combinaciones con Ctrl: mover el cursor y borrar caracteres del filtro
    • Enter: alternar expandir/contraer en el visor JSON
    • Ctrl + P/N: expandir/contraer todos los pliegues en el visor JSON
  • Uso

    • Explorador de JSON y filtro interactivo usando jq.
    • Ejemplo de uso: jnv [OPTIONS] [INPUT]
    • Opciones:
      • Especificar el modo de edición: "insert" o "overwrite"
      • Ajustar el formato de visualización de JSON: cambiar el nivel de sangría
      • Mostrar u ocultar pistas: si se muestran pistas para ofrecer sugerencias o guía al usuario
      • Especificar la profundidad inicial de expansión: profundidad inicial de expansión de los nodos JSON
      • Controlar la longitud de la lista de sugerencias: ajustar la longitud de la lista para que el usuario pueda elegir con más eficiencia

Opinión de GN⁺

  • jnv_jnv_ es una herramienta que facilita explorar y filtrar datos JSON, especialmente útil para desarrolladores que trabajan con conjuntos de datos grandes.
  • Esta herramienta ofrece la potencia de jq con una interfaz amigable, haciendo más eficiente el procesamiento de datos JSON.
  • jnv_jnv_ está implementado en Rust, por lo que puede ofrecer ventajas en rendimiento y estabilidad, y también tiene el beneficio de no requerir una instalación separada de jq en el sistema.
  • Otras herramientas con funciones similares incluyen herramientas de prueba de API como Postman o Insomnia, pero están más enfocadas en pruebas de API y menos especializadas en exploración pura de JSON como jnv_jnv_.
  • Al adoptar jnv_jnv_, conviene considerar qué tan intuitiva es la interfaz de usuario y las limitaciones de sus funciones de filtrado; si se necesita un procesamiento complejo de JSON, puede ser necesario aprender scripts de jq por separado.

1 comentarios

 
GN⁺ 2024-03-20
Comentarios en Hacker News
  • Muy genial, una pequeña observación:

    • es muy lento con JSON de tamaño mediano (16 MB)
    • la fuente es demasiado oscura (envié un PR)
    • mientras buscaba una alternativa con buen rendimiento, encontré fx, un visor de JSON rápido, aunque sin las funciones de jq (fx.wtf)
  • Se ve realmente interesante; sin duda lo voy a revisar.

    • hasta ahora he estado haciendo consultas interactivas con jq y up, pero no me gusta la UX de up (sobre todo para consultas largas o datos que no son ASCII)
    • me interesa mucho encontrar un reemplazo
  • ¡¡Está buenísimo!! Lo instalaré en cuanto tenga mi laptop en las manos.

    • me llamó la atención de inmediato porque hice algo parecido
    • me pregunto si sería posible generalizar la idea para que más comandos en la CLI puedan tener una interfaz interactiva
    • desde hace tiempo imagino un "constructor de comandos" que pueda cargar la documentación adecuada según la posición del cursor y mostrarla mientras editas la línea de comandos
  • ¡Está realmente genial! Se ve muy parecido a jless.

  • A veces pienso que sería bueno poder buscar dentro de la salida JSON en el navegador o en el IDE.

    • pero el problema no es lo bastante urgente como para dedicarle tiempo
  • Si usas Emacs, también existe jq-mode.

    • pero la función de autocompletado de filtros de jnv es una característica matadora realmente buena
    • jq-mode
  • Está muy genial; algo que siempre me ha frustrado al usar jq es que no puedes ver qué datos vas a obtener hasta que haces la consulta sobre los datos.

  • Si usas Sublime Text, hay un plugin que hace posible eso.

    • aviso: escribí ese plugin hace poco
    • Plugin Jq
  • Ojalá todo el mundo conociera la alternativa "fx".

    • puede hacer más cosas como map, filter y reduce, y su semántica se parece más a lo que ya conoces
    • también soporta YAML
    • Primeros pasos con fx
  • Muy genial. No sé si es pedir demasiado, pero ¿podría adaptarse para que también funcione con OjG, que usa JSONPath en lugar de la sintaxis de jq?

    • estoy dispuesto a ayudar
    • me disculpo si sonó grosero