Herramienta de consultas JSON (estilo jq)

Consulta y transforma datos JSON con sintaxis tipo jq. Extrae, filtra y reorganiza con pipes, selects, maps, sort_by, unique, flatten y mucho más.

Actualizado

Share:
Home/Utility Tools/JSON Query (jq-like)

JSON Query (jq-like)

Query and transform JSON data using jq-like syntax. Extract, filter, and reshape JSON with a powerful mini query language.

JSON Input

541 B

Result

Error

Query Error

Unknown accessor: .users[].name

jq Syntax Reference

Access

.Identity (whole doc)
.keyObject key
.a.bNested key
.[]Iterate array
.[0]Array index
.[0:3]Array slice

Transforms

lengthArray/string length
keysObject keys
valuesObject values
uniqueDeduplicate
flattenFlatten nested arrays
first / lastFirst/last element

Filter & Map

select(.k == "v")Filter by condition
map(.key)Map over array
sort_by(.key)Sort by field
|Pipe / chain ops

Preguntas Frecuentes

¿Qué es la herramienta JSON Query (tipo jq)?

La herramienta JSON Query (tipo jq) es una herramienta online gratuita que consulta y transforma datos JSON usando una sintaxis similar a jq. Extrae, filtra y reestructura con pipes, selects, maps, sort_by, unique, flatten y mucho más. Funciona completamente en tu navegador, sin necesidad de instalación ni registro.

¿Qué sintaxis de jq admite?

Acceso por punto (.key), iteración de arrays (.[], .[0]), troceado (.[0:3]), pipes (|), filtros select, map, sort_by, unique, flatten, keys, values, length, first y last.

¿Es jq completo?

No: cubre los patrones más usados. jq completo tiene cientos de funciones integradas; esta herramienta gestiona las 18 operaciones que cubren el 90 % de las consultas habituales.

¿Es seguro mi JSON?

Sí. Todo el procesamiento se realiza en tu navegador. No se envía ningún dato a ningún servidor.

¿La herramienta JSON Query (tipo jq) es gratis?

Sí, la herramienta JSON Query (tipo jq) es 100 % gratis, sin registro, sin tarifas ocultas y sin límites de uso. Todo el procesamiento se realiza localmente en tu navegador, garantizando una privacidad total.

¿Están seguros mis datos con esta herramienta?

Por completo. La herramienta JSON Query (tipo jq) procesa todo del lado del cliente, en tu navegador. No se sube ni se almacena ningún dato en ningún servidor. Tu contenido permanece privado en tu dispositivo en todo momento.

¿La herramienta JSON Query (tipo jq) funciona en dispositivos móviles?

Sí, la herramienta JSON Query (tipo jq) es totalmente adaptable y funciona en smartphones y tablets. Puedes usarla en cualquier dispositivo con un navegador web moderno, sin necesidad de descargar ninguna app.

¿Necesito crear una cuenta para usar esta herramienta?

No se necesita cuenta ni registro. Solo tienes que abrir la herramienta JSON Query (tipo jq) en tu navegador y empezar a usarla de inmediato. No hay barreras de registro ni restricciones de uso.

¿Cómo uso la herramienta JSON Query (tipo jq)?

Simplemente introduce tus datos en el campo indicado, ajusta los parámetros a tu gusto y la herramienta los procesará al instante. Después puedes copiar el resultado al portapapeles o descargarlo.

¿Qué navegadores son compatibles?

La herramienta JSON Query (tipo jq) funciona en todos los navegadores modernos, incluidos Chrome, Firefox, Safari, Edge y Opera. Para una mejor experiencia, usa la última versión de tu navegador preferido.

¿Qué hace la tubería (|) en una consulta jq?

La tubería pasa la salida de un paso al siguiente, de modo que una consulta se lee de izquierda a derecha como una pequeña cadena de montaje. En ".users | select(.active == true) | map(.name)", el primer paso extrae el array de usuarios, el segundo conserva solo los elementos donde active es true, y el tercero proyecta únicamente el nombre de cada registro restante. Cada etapa opera sobre lo que produjo la etapa anterior, por eso el orden importa: normalmente conviene reducir primero a un array, luego filtrar, y después mapear u ordenar. Sin la tubería estarías limitado a una sola expresión de acceso. Encadenar pasos te permite convertir una respuesta de API profundamente anidada en exactamente los valores que quieres en una sola línea. Escribe una consulta con tuberías en la barra de arriba y el resultado se actualiza en vivo mientras construyes cada etapa.

¿Cómo extraigo un solo campo de cada elemento de un array JSON?

Usa map con una ruta de punto para proyectar un solo campo de cada elemento. Para una lista de usuarios, ".users | map(.email)" devuelve un array plano con solo los valores de email, descartando cualquier otro campo. Es la forma más rápida de convertir una lista extensa de una API en una sola columna que puedes revisar, copiar o pegar en una hoja de cálculo. Si solo quieres los valores únicos, encadena unique al final: ".users | map(.role) | unique" elimina las repeticiones para que veas cada rol distinto una sola vez. También puedes acceder a campos anidados, como map(.address.city), siempre que la ruta exista en cada elemento. El panel de resultados indica el número de elementos, para que puedas confirmar que obtuviste un valor por registro. Pega tu array arriba y ejecuta una consulta map para extraer la columna que necesitas.

¿Por qué mi consulta devuelve un error 'Cannot slice non-array' o de incompatibilidad de tipos?

La mayoría de los errores de consulta se deben a aplicar una operación al tipo de valor equivocado. Recortar con .[0:3], indexar con .[0], y funciones como unique, flatten y sort_by esperan todos un array, así que aplicarlos a un objeto o a una cadena genera una incompatibilidad de tipos en lugar de adivinar. Una causa común es olvidar un paso: ".[0]" falla en un documento cuyo nivel superior es un objeto, mientras que ".users[0]" funciona porque .users sí es el array. La herramienta muestra un error en lenguaje sencillo que explica qué salió mal, en vez de fallar en silencio, lo que facilita detectar que primero necesitas entrar en una clave. Comprueba que el valor en ese punto sea realmente una lista, por ejemplo ejecutando solo la ruta antes de la operación que falla. Ajusta la ruta en la barra de consulta de arriba y el resultado se recalcula al instante para que confirmes la corrección.

¿Cómo filtro un JSON para quedarme solo con los registros que cumplen una condición?

Usa select con una comparación entre paréntesis para conservar solo los elementos que quieres. ".users | select(.role == "admin")" devuelve solo las cuentas de administrador, mientras que ".users | select(.age >= 18)" conserva a todos los mayores de edad. Las comparaciones admitidas son ==, !=, >, <, >= y <=, con los operadores de orden (>, <, >=, <=) pensados para números, y == o != funcionando tanto en cadenas como en números y booleanos. Como select se ejecuta sobre cada elemento de un array, normalmente debes pasarle primero un array mediante una tubería. Combínalo con map para filtrar y proyectar en un solo paso, como ".users | select(.active == true) | map(.name)". El panel de resultados muestra cuántos elementos sobrevivieron al filtro, una comprobación rápida de que recortó el conjunto como esperabas. Prueba una consulta select arriba con tus propios datos o con el ejemplo integrado.

¿Cómo obtengo el último elemento o cuento el número de registros en un JSON?

Para contar, pasa un array a length mediante una tubería: ".users | length" devuelve el número de usuarios, y en una cadena o un objeto devuelve en su lugar el número de caracteres o de claves. Para obtener los extremos sin conocer el tamaño, usa first y last, como en ".metadata.tags | last", o indexa desde el final con un número negativo como .[-1], que la herramienta resuelve en relación con la longitud del array. Esto es útil para comprobaciones rápidas, como contar registros antes y después de un filtro para ver cuántos eliminó un select, o leer la entrada más reciente en un array de tipo registro (log). El panel de resultados también indica el tipo de la salida y el número de elementos junto con el tamaño en bytes, lo que ofrece una segunda confirmación del número. Carga tu JSON arriba y pásalo por length, first o last para leer los conteos que necesitas.

Acerca de la herramienta de consultas JSON

La herramienta de consultas JSON es un entorno de pruebas gratuito, que funciona directamente en el navegador, para filtrar, extraer y reorganizar datos JSON usando una sintaxis al estilo jq. Pega un documento JSON a la izquierda, escribe una consulta en la barra superior y el resultado coincidente aparece a la derecha, actualizándose en vivo a medida que escribes. Está pensada para desarrolladores, ingenieros de datos, testers de QA y cualquiera que alguna vez se haya quedado mirando una respuesta de API interminable buscando desesperadamente los tres campos que realmente importan.

jq es el procesador de línea de comandos de facto para JSON, pero no siempre está instalado y su sintaxis completa puede resultar densa. Esta herramienta reproduce los patrones más habituales directamente en una pestaña del navegador — sin brew install, sin terminal, sin pelearte con comillas escapadas en tu shell. Todo se ejecuta localmente en JavaScript: tu JSON nunca sale de tu dispositivo, algo importante cuando el contenido es una respuesta de producción, un token de autenticación o cualquier otro dato que preferirías no pegar en un servidor ajeno.

El lenguaje de consultas que admite

La herramienta incluye un intérprete enfocado que cubre alrededor de 18 operaciones — el puñado que responde a la gran mayoría de las preguntas cotidianas sobre un documento JSON:

  • Acceso. devuelve el documento completo, .clave lee un campo, .a.b recorre claves anidadas, .[] itera los valores de un array o de un objeto, .[0] indexa (los números negativos como .[-1] cuentan desde el final) y .[0:3] recorta un rango.
  • Transformacioneslength cuenta elementos o caracteres, keys lista las claves de un objeto (ordenadas), values devuelve sus valores, unique elimina elementos duplicados, flatten aplana arrays anidados, y first / last obtienen los extremos de un array.
  • Filtrado y mapeoselect(.role == "admin") conserva los elementos que cumplen la condición, map(.age) proyecta un solo campo de cada elemento, y sort_by(.age) ordena un array según un campo.

Las comparaciones dentro de select admiten ==, !=, >, <, >= y <=, con los operadores de orden aplicándose a números. El operador de tubería | encadena pasos entre sí, de modo que .users | select(.active == true) | map(.name) se lee de izquierda a derecha: toma los usuarios, conserva solo los activos y luego extrae únicamente sus nombres.

Cómo se usa en la práctica

Escribe una consulta y el resultado se recalcula en cada pulsación de tecla; pulsa Enter o el botón Ejecutar para guardarla en tu historial de consultas (se conservan las últimas 20 como chips en los que puedes hacer clic). Una fila de botones de consultas predefinidas — identidad, contar usuarios, usuarios activos, ordenar por edad, roles únicos y más — funciona a la vez como inicio rápido y como chuleta de sintaxis en vivo. Por defecto se carga un documento de ejemplo integrado, para que puedas experimentar antes de pegar tus propios datos.

El panel de resultados indica el tipo de la salida y el número de elementos (por ejemplo array(3) u object(5 keys)), junto con el tamaño en bytes tanto de tu entrada como del resultado, lo que sirve como comprobación rápida de que un filtro recortó exactamente lo que esperabas. La salida es JSON con formato legible que puedes copiar al portapapeles o descargar como archivo query-result.json. Si una consulta está mal formada o produce una incompatibilidad de tipos — por ejemplo, intentar recortar algo que no es un array — el panel muestra un error en lenguaje sencillo en lugar de fallar en silencio.

Dónde ayuda y qué esperar

Los usos típicos incluyen extraer una sola columna de una lista de una API (map(.email)), contar registros antes y después de un filtro, eliminar duplicados de un array de etiquetas, encontrar las cuentas de administrador en un volcado de usuarios, u ordenar resultados para detectar de un vistazo los valores más altos y más bajos. Convierte una respuesta de 200 líneas en la respuesta que buscabas en cuestión de segundos.

Esto es, deliberadamente, un subconjunto de jq, no una reimplementación completa. El jq real tiene cientos de funciones incorporadas — aritmética, interpolación de cadenas, reduce, group_by, descenso recursivo, funciones personalizadas — y todo eso queda fuera del alcance de esta herramienta. Si una consulta depende de funciones más allá de las operaciones mencionadas arriba, ejecútala en el jq real desde la línea de comandos. Pero para la tarea cotidiana de "solo necesito este campo", la herramienta de consultas JSON te lleva hasta ahí sin salir del navegador.