¿Qué es JSONPath?

JSONPath es un lenguaje de consulta para JSON, similar a cómo XPath funciona para XML. Te permite navegar y extraer datos de una estructura JSON usando expresiones de ruta. Una expresión JSONPath comienza con $, que representa la raíz del documento, y utiliza notación de punto (.key) o notación de corchetes (['key']) para recorrer objetos, e [index] para acceder a elementos de matriz.

JSONPath fue descrito originalmente por Stefan Gössner en 2007 y desde entonces se ha convertido en un estándar ampliamente utilizado en APIs, marcos de prueba y canalizaciones de procesamiento de datos. Es compatible con muchos lenguajes y herramientas, incluyendo JavaScript, Python, Java, y bases de datos como PostgreSQL y MySQL.

Descripción de la herramienta

Esta herramienta te permite pegar cualquier documento JSON válido y escribir una expresión JSONPath para consultarlo. Los resultados se muestran instantáneamente mientras escribes, mostrando todos los valores coincidentes como una matriz JSON formateada. El recuento de coincidencias se muestra por separado para que puedas verificar rápidamente cuántos nodos fueron seleccionados.

Ejemplos

JSON de entrada:

{
  "store": {
    "book": [
      { "title": "Moby Dick", "price": 8.99, "category": "fiction" },
      { "title": "War and Peace", "price": 12.5, "category": "fiction" },
      {
        "title": "A Brief History of Time",
        "price": 7.99,
        "category": "science"
      }
    ]
  }
}
Expresión Resultado
$.store.book[*].title Todos los títulos de libros
$.store.book[0] Primer objeto de libro
$.store.book[?(@.price < 10)] Libros más baratos que $10
$.store.book[?(@.category == "fiction")] Solo libros de ficción
$..price Todos los valores de precio en cualquier lugar del documento

Características

  • Evaluación en tiempo real — los resultados se actualizan mientras escribes la expresión o editas el JSON
  • Muestra el recuento de coincidencias en un campo dedicado
  • Botón de copiar en el campo de expresión para reutilización rápida
  • Botón de pegar para insertar rápidamente JSON o expresiones desde el portapapeles
  • Reporte de errores para JSON inválido o expresiones de ruta mal formadas

Cómo funciona

Las expresiones JSONPath se evalúan contra el JSON analizado usando la biblioteca jsonpath-plus. El símbolo $ se refiere al elemento raíz. Los nodos secundarios se acceden con . o [], comodines con *, descenso recursivo con .., y filtros con [?(...)]. El resultado siempre es una matriz de valores coincidentes, incluso si solo se encuentra una coincidencia.

Opciones explicadas

Sintaxis Significado
$ Elemento raíz
.key o ['key'] Propiedad secundaria
[*] Todos los elementos de matriz
[0] Primer elemento de matriz (indexado desde cero)
[-1] Último elemento de matriz
[0,2] Elementos en los índices 0 y 2
[0:2] Elementos del índice 0 al 1 (segmento)
..key Descenso recursivo — encuentra key a cualquier profundidad
[?(@.price > 5)] Filtro — elementos donde price es mayor que 5
@ Nodo actual (utilizado dentro de expresiones de filtro)

Casos de uso

  • Desarrollo de API — verifica que un selector JSONPath utilizado en un cliente REST, suite de pruebas o herramienta de mapeo de datos extraiga los campos esperados de una respuesta de API
  • Transformación de datos — identifica qué valores extraer de cargas JSON anidadas antes de escribir un script de transformación
  • Aprender JSONPath — experimenta interactivamente con la sintaxis de ruta para entender cómo se comportan operadores como .., [*] y [?()] en datos reales

Consejos

  • Usa $..* para obtener cada valor en todo el documento — útil para explorar estructuras JSON desconocidas.
  • Las expresiones de filtro admiten comparaciones (==, !=, <, >, <=, >=) y pueden hacer referencia a propiedades anidadas: [?(@.author.name == "Rees")].
  • Para coincidir con una propiedad independientemente de su profundidad, usa el descenso recursivo ..: $..title encuentra todos los campos title en cualquier lugar del documento.