Extractor de rutas JSON

Pega JSON e introduce una expresión de ruta como $.store.book[0].title para extraer valores.

Resultado

Introduce JSON y una ruta, luego haz clic en Extraer.

Cómo funciona

  1. Pega tu JSON: introduce un objeto o un array JSON en el campo de entrada.
  2. Introduce una expresión JSONPath: escribe una ruta como $.store.book[*].author o $.users[?(@.age > 18)] para seleccionar los datos que quieras.
  3. Visualiza los resultados extraídos: los valores coincidentes aparecen al instante en el panel de salida. Copia el resultado o expórtalo.

¿Por qué usar el extractor JSONPath?

Cuando trabajas con respuestas de API complejas o JSON profundamente anidado, extraer valores específicos a mano es lento y propenso a errores. JSONPath es el lenguaje de consulta para JSON, similar a XPath para XML. Permite apuntar exactamente a los datos que necesitas mediante una expresión de ruta concisa, ya sea un valor anidado único, todos los elementos de un array o registros filtrados que coinciden con una condición. Esta herramienta hace la exploración JSONPath interactiva sin escribir código.

Funcionalidades

Preguntas frecuentes

¿Qué es JSONPath?

JSONPath es un lenguaje de consulta para documentos JSON, análogo a XPath para XML. Una ruta como $.users[*].name selecciona el campo name de cada objeto en el array users. Se usa ampliamente para testing de API, transformación de datos y procesamiento JSON.

¿Cómo filtrar los elementos de un array por una condición?

Usa una expresión de filtro: $.items[?(@.price < 50)] devuelve todos los elementos cuyo precio es inferior a 50. El símbolo @ hace referencia al elemento en curso de evaluación.

¿Admite la búsqueda recursiva?

Sí. El operador .. efectúa una búsqueda recursiva a todos los niveles. Por ejemplo, $..name encuentra todas las claves name allá donde se encuentren en la estructura JSON, sea cual sea la profundidad del anidamiento.

De una entrada de blog a RFC 9535: el camino de 17 años hacia un estándar JSONPath

Stefan Gössner propuso JSONPath en una sola entrada de blog en febrero de 2007, adaptando la idea de XPath a JSON. Publicó una implementación JavaScript de referencia, esbozó la sintaxis (la raíz $, los operadores hijo punto y corchete, .. para descenso recursivo, * para comodín, [inicio:fin:paso] para corte de array, [?(...)] para expresiones de filtro) y el ecosistema más amplio lo siguió. Las implementaciones proliferaron: jsonpath para JavaScript, JsonPath para Java, jq (Stephen Dolan, 2012) que es adyacente a JSONPath pero su propia cosa, jsonpath-ng para Python, JMESPath (AWS, 2014) como rival más estricto. El problema: cada implementación derivó. Sintaxis de filtro, semántica de recursión, coincidencia de regex, identificadores de raíz, todos sutilmente diferentes entre bibliotecas. Un estudio comparativo de 2023 por Carsten Bormann et al. probó 41 implementaciones JSONPath distintas contra la misma entrada y obtuvo 41 conjuntos de resultados diferentes para la misma expresión. El Grupo de Trabajo JSONPath del IETF se reunió en 2020 para arreglar esto. RFC 9535 «JSONPath: Query Expressions for JSON» fue publicado en febrero de 2024, convirtiéndose en el primer estándar formal para JSONPath, 17 años después del post original de Gössner. RFC 9535 codifica la sintaxis, define un formato de salida normalizado, requiere normalización Unicode para comparaciones de cadenas, y añade una suite de pruebas de conformidad.

Hoja de trucos de sintaxis JSONPath

Los siete operadores que cubren la mayoría de consultas del mundo real:

Donde realmente recurres a JSONPath

Errores que muerden

JSONPath vs jq vs JMESPath vs JSON Pointer

Más preguntas frecuentes

¿JSONPath es lo mismo que XPath?

Inspirado por él, no idéntico. XPath fue finalizado por W3C en 1999 para XML, JSONPath fue esbozado por Gössner en 2007 para llevar la misma idea a JSON. Las mayores diferencias: JSONPath usa . y [] en lugar de /, JSONPath no tiene concepto de espacios de nombres XML o atributos, JSONPath se estandarizó mucho después (2024 vs 1999), así que durante años fue una sintaxis de facto con muchas implementaciones incompatibles.

¿Por qué el mismo JSONPath da resultados diferentes en diferentes herramientas?

Porque JSONPath no se estandarizó hasta RFC 9535 (febrero de 2024). Antes de eso, cada implementación tomaba sus propias decisiones sobre sintaxis de filtro, soporte de regex, identificadores de raíz, reglas de escape, y casos límite (arrays vacíos, claves faltantes, coerción de tipo en filtros). Un estudio del grupo de trabajo IETF de 2023 probó 41 implementaciones en la misma entrada y obtuvo 41 conjuntos de resultados diferentes. RFC 9535 arregla esto para bibliotecas nuevas y actualizadas; las bibliotecas más antiguas divergirán hasta que migren. Siempre verifica si tu biblioteca afirma «conformidad RFC 9535».

¿Puedo modificar el JSON con JSONPath, o solo leer?

RFC 9535 define JSONPath estrictamente como un lenguaje de consulta: devuelve valores de un documento, no muta. Para modificar JSON, usa JSON Patch (RFC 6902), que usa rutas JSON Pointer y operaciones add/remove/replace/copy/move/test. Algunas bibliotecas combinan ambos (p. ej. jsonpath-plus en JavaScript tiene una extensión de mutación apply()) pero eso no es JSONPath estándar.

¿JSONPath soporta expresiones regulares en filtros?

RFC 9535 añadió dos funciones regex: match(node, regex) coincide con toda la cadena, search(node, regex) coincide con cualquier subcadena. Ejemplo: $.book[?(match(@.isbn, "^978-"))]. El sabor regex es I-Regexp (RFC 9485, un perfil de regex de XML Schema), no PCRE o regex JavaScript. Las bibliotecas más antiguas usaban el sabor regex de su lenguaje anfitrión, lo que hace las consultas regex especialmente no portables.

¿Mi JSON se envía a alguna parte cuando uso esta herramienta?

No. La evaluación de ruta se ejecuta enteramente en el motor JavaScript de tu navegador. Abre la pestaña Red en DevTools y ejecuta una consulta, verás cero solicitudes salientes durante la evaluación. Seguro para respuestas API con secretos, volcados de base de datos con PII, o archivos de configuración que contienen credenciales.

Herramientas relacionadas

Visor de árbol JSON Formateador y validador JSON gratuito en línea Conversor de JSON a CSV Comparador JSON