Consulta JSON

Extraiga valores de JSON con expresiones JSONPath o JSON Pointer RFC 6901

JSON

Consulta

Consulta JSON

Extraiga valores de JSON con expresiones JSONPath o JSON Pointer RFC 6901

Características

  • Dos modos de consulta lado a lado: JSONPath (impulsado por el QueryService compartido con comodines y acceso por corchetes) y JSON Pointer RFC 6901 (separado por barras, con escape ~0/~1) — elija la sintaxis que coincida con sus herramientas existentes
  • El comodín `*` en cualquier segmento se expande a todas las claves de objeto o elementos de array en ese nivel — `$.store.books[*].title` devuelve todos los títulos de libros sin escribir un bucle
  • Cada coincidencia se muestra con su ruta concreta Y su valor: los resultados no son una sola respuesta sino una lista de rutas — una expansión de comodín produce N filas que puede copiar individual o conjuntamente
  • El modo JSON Pointer valida la sintaxis de segmentos: comienza con `/`, segmentos enteros indexan arrays, segmentos nombrados indexan objetos, `~1` decodifica a `/` y `~0` a `~` — misma semántica que JSON Schema instancePath y JSON Patch
  • Botón copiar por coincidencia escribe el valor al portapapeles (cadenas en bruto, estructuras como JSON pretty-print), y Copiar todo vuelca la lista completa `ruta: valor` como texto plano
  • Errores de parseo y de consulta se sacan a la superficie por separado con el mensaje completo del motor JS — sabe inmediatamente si su JSON o su expresión es la culpable
  • Cargar ejemplo rellena un pequeño documento de librería con una consulta funcional para el modo activo — referencia útil de primera vez para la sintaxis
  • Puramente del lado cliente: JSON, expresiones y resultados nunca salen del navegador; funciona sin conexión una vez cacheada la página

Cómo usar

  1. Pegue el documento JSON a consultar en el área de texto izquierda.
  2. Elija un modo: JSONPath (bueno para selectores con comodines) o JSON Pointer (bueno para nombrar un solo nodo sin ambigüedad).
  3. Escriba la expresión en el campo de consulta — se muestran ejemplos en el placeholder para cada modo.
  4. Pulse Ejecutar consulta o pulse Enter en el campo. Las coincidencias aparecen con sus rutas concretas y valores; un contador muestra cuántas se encontraron.
  5. Copie valores individuales con el icono junto a cada coincidencia, o use Copiar todo para la lista completa `ruta: valor`.
  6. Use Cargar ejemplo para llenar ambas entradas con un ejemplo funcional si es nuevo en la sintaxis.

Consejos y buenas prácticas

  • Cuando no esté seguro de que su JSON tenga una clave, use primero un comodín para enumerar lo que hay realmente, luego acote.
  • Las rutas JSON Pointer son ordenables como cadenas — útil cuando quiere comparar conjuntos de rutas entre dos estructuras.
  • Si una consulta devuelve una coincidencia pero esperaba varias, compruebe erratas (`book` vs `books`) — JSONPath aquí devuelve coincidencia exacta, no difusa.
  • Para datos profundamente anidados, JSON Pointer es más corto que JSONPath porque no lleva `$` y `.` — útil en chat o mensajes de commit.
  • Combine con JSON Tree: navegue visualmente primero, luego copie un pointer conocido-bueno en esta herramienta para reutilizar.

Preguntas frecuentes

¿Qué sintaxis JSONPath se soporta?

El subconjunto mínimo pero útil: `$` raíz, `.key` acceso a miembro, `['key']` acceso citado (para claves con puntos o caracteres especiales), `[N]` índice de array, y `*` comodín en cualquier segmento. Expresiones de filtro (`[?(@.price < 30)]`), operador descendiente (`..`) y slicing (`[1:3]`) no se soportan aquí — para eso use la pestaña JSONPath de JSON Formatter que lleva un motor más rico.

¿Cuál es la diferencia entre JSONPath y JSON Pointer?

JSONPath es un lenguaje de consulta (XPath-para-JSON) — puede seleccionar múltiples nodos mediante comodines, descendientes y predicados. JSON Pointer (RFC 6901) es una notación de ruta — nombra EXACTAMENTE UN nodo y existe o no. Use JSONPath cuando quiera un CONJUNTO de resultados; use JSON Pointer cuando quiera una ubicación determinista única (p. ej. para JSON Patch o para copiar un instancePath fallido de un validador de esquema).

¿Por qué necesito ambos modos?

Diferentes herramientas y estándares usan diferentes notaciones. Los errores instancePath de JSON Schema son JSON Pointer. fast-json-patch usa JSON Pointer. JSONPath es lo que esperan la mayoría de CLIs de consulta JSON y muchas librerías. Tener ambos modos aquí significa que puede copiar una ruta entre herramientas sin reescribirla.

¿Cómo se manejan claves con caracteres especiales?

JSONPath: citelas entre corchetes — `$['weird.key']` accede a la clave literalmente llamada `weird.key`. JSON Pointer: escape según RFC 6901 — `/` en una clave se vuelve `~1`, `~` se vuelve `~0`. El placeholder muestra la forma estándar para cada modo.

¿Qué pasa si la ruta no coincide con nada?

Obtiene un resultado de 0 coincidencias y una nota «La consulta no devolvió coincidencias» en lugar de un error. Es la convención normal de JSONPath / JSON Pointer: rutas ausentes son ausencia, no fallo. Distinga ausencia de entrada malformada mirando si apareció la fila de error.

¿Pueden los comodines descender en arrays anidados?

Sí, en cada nivel. `$.users[*].roles[*]` comodín primero a través de todos los usuarios, luego a través de los roles de cada uno, produciendo cada cadena de rol. La tabla de salida muestra la ruta concreta resuelta de cada coincidencia (p. ej. `$.users[0].roles[2]`), útil cuando quiere saber exactamente de dónde vino un hit.

¿Se envía algo a un servidor?

No. JSON.parse corre en su navegador, la evaluación JSONPath / JSON Pointer corre en su navegador, y las coincidencias se renderizan en la página sin llamadas de red. La pestaña Red de DevTools no muestra nada al pulsar Ejecutar consulta.

¿En qué se diferencia de la pestaña de consulta de JSON Formatter?

JSON Formatter es multi-herramienta: formato, validación, esquema, JSONPath, diff. Esta consulta JSON independiente es la interfaz mínima: una URL, dos modos, resultados-en-lista con copia por coincidencia, sin superficie extra. Use el Formatter cuando quiera una sola vista que combine varios flujos JSON; éste cuando solo quiera extraer valores.