jq: Interprete JSON desde la línea de comandos

jq es un proyecto interesante para aquellos usuarios de la linea de comandos que buscan hacer más legibles sus transacciones de información en formato JSON.

Interprete JSON desde la linea de comandos

Este buen proyecto permite por medio de unos breves parámetros configurar las entradas y salidas de datos en formato JSON, de tal manera que sean más fáciles de entender. Por ejemplo, por medio de curl podemos hacer una solicitud de información en formato JSON a cualquier servicio web, y con jq podemos interpretarla para que sea fácil de leer, evitando así los clásicos e interminables bloques de textos que dificultan la lectura por no poseer una estructura tabulada.

Ejemplo de uso:

Esta es una solicitud que utiliza CURL al API  de Twitter, en caso de no utilizar jq el resultado seria un bloque interminable de texto en formato JSON sin una sola tabulación, haciendo su lectura algo casi imposible. En cambio al utilizar jq el resultado es completamente distinto, una estructura JSON tabulada facil de leer por humanos 😛

Solicitud:

curl 'http://search.twitter.com/search.json?q=json' | jq '.'

Salida formateada con jq:

{
  "since_id_str": "0",
  "since_id": 0,
  "results_per_page": 5,
  "completed_in": 0.108,
  "max_id": 247677287108067330,
  "max_id_str": "247677287108067328",
  "next_page": "?page=2&max_id=247677287108067328&q=json&rpp=5",
  "page": 1,
  "query": "json",
  "refresh_url": "?since_id=247677287108067328&q=json&include_entities=1",
  "results": [
    {
      "from_user_name": "NgChenChong",
      "from_user_id_str": "79771704",
      "from_user_id": 79771704,
      "from_user": "_AaronNg",
      "iso_language_code": "en",
      "text": "RT @imagemechanics",
      "to_user": null
      /* lots more fields... */
    },
    /* lots more results... */
  ]
}

jq cuenta con un interesante abanico de opciones muy útiles, una de ellas permite seleccionar el numero de resultados, inclusive uno en puntual, por ejemplo para obtener el primer resultado debemos escribir:

curl 'http://search.twitter.com/search.json?q=json' | jq '.results[0]'

Les recomiendo visitar el sitio oficial para encontrar más usos y modos de aprovechar al máximo a este fantástico proyecto.

Web: jq

Categorizado en: