Probador JSONPath gratis: evalúa consultas
Prueba expresiones JSONPath sobre cualquier JSON al instante. Motor estándar RFC 9535 más modo Clásico de Goessner, vistas Valores / Rutas / Ambas, rutas normalizadas, sin eval. 100% privado, en tu navegador, sin subidas.
¿Qué es un probador JSONPath?
Un probador JSONPath es una herramienta que te permite escribir una expresión JSONPath, pegar un documento JSON y ver exactamente qué nodos selecciona la expresión —tanto los valores coincidentes como sus ubicaciones precisas— sin escribir código ni ejecutar un script. Para los desarrolladores acorta el ciclo de minutos a milisegundos: ajusta la ruta, observa cómo cambia el resultado y envía la consulta con confianza.
JSONPath es un lenguaje de consulta para JSON, el análogo en JSON de XPath para XML. Una expresión se construye a partir de un pequeño alfabeto de selectores. $ es la raíz del documento. Un punto o un corchete entra en un hijo: $.store o $['store']. El doble punto .. es el descenso recursivo: busca en todos los niveles del árbol. El comodín * selecciona todos los elementos o miembros. Los corchetes llevan índices de array ([0]), cortes ([start:end:step]), uniones ([a,b]) y expresiones de filtro ([?(@.price < 10)], donde @ es el elemento que se está evaluando). Con esas piezas puedes extraer un solo campo de una respuesta de API profundamente anidada, hacer aserciones sobre valores en pruebas, dirigir transformaciones de datos en sistemas como Kubernetes, AWS Step Functions y Azure Logic Apps, o extraer datos estructurados de JSON irregular, todo sin código de recorrido imperativo. JSONPath también es célebremente inconsistente entre implementaciones, que es exactamente el problema que un buen probador saca a la luz antes de que llegue a producción.
Este probador incluye dos motores. El predeterminado es un motor RFC 9535: RFC 9535 es la especificación formal de JSONPath del IETF de febrero de 2024, la primera vez que el lenguaje se estandarizó con precisión tras quince años de implementaciones divergentes. Define una gramática exacta, el concepto de rutas normalizadas para los resultados y cinco funciones estándar: length(), count(), match(), search(), value(). Nuestro motor RFC 9535 es una implementación sin dependencias que no usa eval, así que analiza e interpreta las expresiones con su propia gramática en lugar de compilarlas a JavaScript. El segundo motor es Clásico (Goessner), el dialecto de facto de 2007 que implementan la mayoría de las herramientas y bibliotecas en línea más antiguas; cambia a él para reproducir resultados de una herramienta como jsonpath.com o para ejecutar una expresión que copiaste de código heredado. Los dos dialectos coinciden en las rutas comunes pero divergen en los casos límite —espacios y entrecomillado en los filtros, orden de las uniones, cómo se comparan los miembros ausentes y qué funciones existen—, así que poder alternar entre ellos en un solo lugar es la forma más rápida de diagnosticar por qué una expresión se comporta de forma distinta a lo que esperabas.
Lo que el probador saca a la luz más allá de los valores en bruto: el resultado de una consulta JSONPath es una lista de nodos, y esta herramienta puede mostrarla de tres formas. La vista Valores renderiza los nodos coincidentes como un array JSON, exactamente lo que consumirías en el código. La vista Rutas renderiza la ruta normalizada de cada coincidencia: una ubicación canónica entre corchetes y comillas como $['store']['book'][0]['title'] que identifica de forma única dónde vive el valor en el documento, sin importar cómo se escribió la expresión. Dos expresiones que seleccionan el mismo nodo producen la misma ruta normalizada, lo que hace que la vista Rutas sea inestimable para la depuración. La vista Ambas muestra valores y rutas una junto a otra. Una línea de estadísticas informa de cuántos nodos coincidieron.
La seguridad es aquí una preocupación de primer orden. Muchos evaluadores JSONPath en línea se ejecutan en un servidor, o incrustan una biblioteca que evalúa los predicados de filtro con el eval de JavaScript: el diseño que produjo las vulnerabilidades de ejecución remota de código rastreadas como CVE-2024-21534 y CVE-2025-1302 en paquetes JSONPath muy usados. Esta herramienta no usa eval en absoluto. El motor RFC 9535 no tiene ruta de eval, y el motor Clásico está construido sobre una versión parcheada y fijada de jsonpath-plus con eval explícitamente deshabilitado. Eso cierra la clase de errores de ejecución remota de código y permite que la herramienta funcione bajo una Content-Security-Policy estricta que prohíbe unsafe-eval. Cada evaluación es local: tu JSON y tu expresión nunca salen de la página, nunca se registran y nunca se almacenan en disco; solo tus preferencias de motor y vista persisten en localStorage. Eso hace que la herramienta sea segura para cargas útiles de API propietarias, registros censurados, configuración interna y cualquier dato con un esquema que no pegarías en un servicio con servidor.
Si tu tarea es manejar JSON, combínala con las demás herramientas JSON del sitio: formatea e imprime con formato tu entrada con el Formateador JSON, compara dos documentos con el JSON Diff, comprueba una carga útil contra un esquema con el Validador de esquema JSON, o convierte una respuesta de muestra en interfaces tipadas con JSON a TypeScript.
// The expression you build in this tester maps straight onto the
// RFC 9535 reference library used under the hood.
import { query, paths } from 'jsonpath-rfc9535';
const document = {
store: {
book: [
{ title: 'Sayings of the Century', author: 'Nigel Rees', price: 8.95 },
{ title: 'Sword of Honour', author: 'Evelyn Waugh', price: 12.99 },
{ title: 'Moby Dick', author: 'Herman Melville', price: 8.99 },
{ title: 'The Lord of the Rings', author: 'J. R. R. Tolkien', price: 22.99 }
]
}
};
// Values: query(document, path) returns the matched values directly.
const titles = query(document, '$.store.book[*].title');
// → ['Sayings of the Century', 'Sword of Honour', 'Moby Dick', 'The Lord of the Rings']
// Filter: books cheaper than 10.
const cheap = query(document, '$.store.book[?(@.price < 10)].title');
// → ['Sayings of the Century', 'Moby Dick']
// Normalized paths: paths(document, path) returns where each match lives.
const authorPaths = paths(document, '$..author');
// → ["$['store']['book'][0]['author']", "$['store']['book'][1]['author']", ...]
// RFC 9535 functions like length() are used INSIDE filters, not as a segment.
const longTitles = query(document, '$.store.book[?length(@.title) > 15]');
// → the two books whose title is longer than 15 characters Características clave
Motor estándar RFC 9535 (sin eval)
El motor predeterminado implementa RFC 9535, la especificación formal de JSONPath del IETF de 2024: gramática exacta, rutas normalizadas y las cinco funciones estándar. No tiene dependencias y no usa eval, así que analiza e interpreta las expresiones con su propia gramática en lugar de compilarlas a JavaScript. Funciona bajo una Content-Security-Policy estricta.
Modo de compatibilidad Clásico (Goessner)
Un conmutador cambia a un motor compatible con Goessner (construido sobre jsonpath-plus, con eval deshabilitado) para que las expresiones copiadas de herramientas más antiguas como jsonpath.com se comporten como las viste allí. Alterna entre RFC 9535 y Clásico para comparar resultados y diagnosticar por qué una ruta coincide de forma distinta entre dialectos.
Tres vistas de resultados: Valores, Rutas, Ambas
Valores renderiza los nodos coincidentes como un array JSON, exactamente lo que consumes en el código. Rutas renderiza la ruta normalizada de cada coincidencia, como $['store']['book'][0]['title']. Ambas las muestra una junto a otra para que puedas asignar cada valor a su ubicación precisa. La vista activa persiste entre sesiones.
Rutas normalizadas para cada coincidencia
Cada resultado lleva su ruta normalizada canónica entre corchetes y comillas: la forma que tiene RFC 9535 de identificar de manera única la ubicación de un nodo sin importar cómo se escribió la expresión. Dos expresiones que apuntan al mismo nodo producen la misma ruta normalizada, lo que hace sencilla la depuración de consultas ambiguas.
Soporte completo de selectores
Raíz $, elemento actual @, hijo .name, descenso recursivo ..name, comodín [*], índice de array [0], corte [start:end:step], unión [a,b] y expresiones de filtro [?()] con operadores de comparación y lógicos. Una chuleta integrada documenta cada selector para que nunca tengas que salir de la página a buscar uno.
Extensiones de función de RFC 9535
Llama a length(), count(), match(), search() y value() dentro de las expresiones: cuenta los elementos de un array, prueba una cadena contra un patrón I-Regexp o filtra por el tamaño de una lista anidada. Estas funciones estándar están disponibles en el motor predeterminado; la herramienta te indica que cambies de motor si las invocas en modo Clásico.
Formatear, Subir y Ejemplos
Formatear JSON imprime con formato tu entrada para que la estructura sea legible antes de que consultes. Subir lee un archivo .json o .txt enteramente en el navegador: nunca se envía a ninguna parte. El desplegable Ejemplos carga expresiones iniciales fiables sobre datos de muestra para que veas el motor en funcionamiento antes de adaptar una ruta.
Compartir mediante enlace permanente (sin subida)
Copiar enlace codifica el JSON, la expresión, el motor y la vista en el hash de la URL. Los navegadores nunca transmiten los fragmentos de URL en las peticiones, así que un enlace compartido reproduce tu estado completo en la máquina del destinatario sin tocar los servidores de go-tools.org. Autocontenido y auditable para la depuración colaborativa.
100% privado, solo en el navegador
Tu JSON y tu expresión nunca salen de tu dispositivo. Sin peticiones de red, sin registros, sin analíticas sobre lo que escribes: compruébalo en DevTools → Red. Solo las preferencias de motor y vista persisten en localStorage. Seguro para cargas útiles propietarias, registros censurados y cualquier dato que no pegarías en jsonpath.com.
Ejemplos resueltos
Seleccionar el título de cada libro de un documento de librería
$.store.book[*].title
["Sayings of the Century", "Sword of Honour", "Moby Dick", "The Lord of the Rings"]
Pega el clásico JSON de la librería de Goessner, escribe la expresión y la vista Valores devuelve un array JSON con los cuatro títulos. Cambia a Rutas para ver cada resultado como una ruta normalizada del tipo $['store']['book'][0]['title']. El comodín [*] recorre todos los elementos del array book; .title proyecta un miembro de cada uno.
Filtrar libros de menos de 10 con una expresión de filtro
$.store.book[?(@.price < 10)].title
["Sayings of the Century", "Moby Dick"]
El selector de filtro [?()] conserva solo los elementos del array donde el predicado es verdadero; @ es el elemento actual. Con los datos de la librería (precios 8.95, 12.99, 8.99, 22.99) dos libros cumplen. Ambos motores aceptan esta forma, pero ten en cuenta que el modo Clásico (Goessner) escribe el mismo filtro como [?(@.price<10)]: cambia de motor si copiaste una expresión de una herramienta más antigua.
Recorrer todo el árbol con descenso recursivo
$..author
["Nigel Rees", "Evelyn Waugh", "Herman Melville", "J. R. R. Tolkien"]
El operador .. desciende a todos los niveles del documento y recoge cada miembro author allí donde aparezca, sin importar la profundidad de anidamiento. El descenso recursivo es la forma más rápida de extraer un campo de una estructura profundamente anidada o irregular sin escribir la ruta completa.
Cortar un array con [start:end:step]
$.store.book[0:2].title
["Sayings of the Century", "Sword of Honour"]
Los cortes de array siguen la misma convención semiabierta [start:end] que Python y JavaScript: del índice 0 hasta el índice 2 sin incluirlo, devuelve los dos primeros libros. Añade un tercer campo para el paso: $.store.book[::2] toma uno de cada dos elementos. El límite final es exclusivo, una trampa habitual de desfase por uno que la vista Rutas deja en evidencia.
Filtrar por longitud de título con la función length() de RFC 9535
$.store.book[?length(@.title) > 15]
[{"title": "Sayings of the Century", "author": "Nigel Rees", "price": 8.95}, {"title": "The Lord of the Rings", "author": "J. R. R. Tolkien", "price": 22.99}] length() es una de las cinco funciones estándar de RFC 9535, y solo es válida dentro de una expresión de filtro [?...]; nunca como segmento de ruta independiente del tipo $.store.book.length(), que la gramática de RFC 9535 rechaza (esa forma de segmento es una extensión de jsonpath-plus, no JSONPath estándar). Aquí el filtro conserva cada libro cuyo título tiene más de 15 caracteres; con los datos de la librería se seleccionan los títulos de más de 15 caracteres (por ejemplo "Sayings of the Century" y "The Lord of the Rings"), mientras que los más cortos como "Moby Dick" y "Sword of Honour" quedan excluidos. count(), match(), search() y value() también se usan dentro de filtros. Estas funciones son una característica de RFC 9535: cambia al motor estándar (el predeterminado) para usarlas; el modo Clásico (Goessner) no las implementa.
Seleccionar una unión de dos miembros con nombre
$.store.book[0]['title','author']
["Sayings of the Century", "Nigel Rees"]
Un selector de unión [a,b] reúne varios hijos en una sola expresión. Aquí extrae a la vez el título y el autor del primer libro. Las uniones también funcionan con índices de array: [0,2] toma el primer y el tercer elemento. La vista Ambas empareja cada valor con su ruta normalizada para que veas exactamente qué miembro produjo cada resultado.
Cómo usar el probador JSONPath
- 1
Pega o sube tu JSON
Suelta el JSON en la caja de entrada, pégalo o haz clic en Subir para cargar un archivo .json / .txt desde el disco. Formatear JSON reindenta el documento. El JSON no válido se señala en línea con un mensaje del analizador antes de que consultes.
- 2
Elige un motor
RFC 9535 (el estándar del IETF de 2024, sin eval) es el predeterminado. Cambia a Clásico (Goessner) cuando ejecutes una expresión copiada de una herramienta más antigua como jsonpath.com para que los resultados coincidan con lo que viste allí.
- 3
Escribe tu expresión JSONPath
El $ inicial ya se muestra. Empieza con una ruta de hijo como .store.book[*].title, un índice como [0], un descenso recursivo como ..author o un filtro como [?(@.price < 10)]. Los resultados se actualizan en vivo a medida que escribes.
- 4
Cambia la vista de resultados
Valores muestra un array JSON de valores coincidentes. Rutas muestra la ruta normalizada de cada coincidencia, como $['store']['book'][0]['title']. Ambas las muestra una junto a otra para que puedas asignar cada valor a su ubicación exacta en el documento.
- 5
Copia el resultado o comparte un enlace permanente
Copiar resultado deja la salida en tu portapapeles. Copiar enlace codifica el JSON, la expresión, el motor y la vista en un hash de URL (sin subida) para que un colega pueda reproducir la consulta exacta localmente en su propia máquina.
Errores comunes de JSONPath
Olvidar la raíz $ inicial
Toda expresión JSONPath empieza en la raíz, escrita como $. Omitirla (o escribir la ruta como si $ fuera implícito) hace que la mayoría de los motores rechacen la expresión. El probador muestra el $ por ti, así que empieza tu entrada con el siguiente selector: un punto, un corchete o un descenso recursivo.
store.book[*].title → invalid (no root)
$.store.book[*].title → selects every title
Corte desfasado por uno: esperabas que el índice final se incluyera
Los cortes son semiabiertos: [start:end] llega hasta end sin incluirlo. [0:2] devuelve dos elementos (índices 0 y 1), no tres. Para incluir el último elemento por índice, usa [start:] o empuja el límite final uno más allá.
$.store.book[0:2] → first TWO books, not three
$.store.book[0:3] → first three books (indices 0,1,2)
Usar una expresión Clásica en el motor RFC 9535 (o al revés)
Una expresión copiada de jsonpath.com o jsonpath-plus puede analizarse o coincidir de forma distinta bajo RFC 9535 por las diferencias de filtro, unión y función. Si los resultados parecen erróneos, cambia el conmutador de motor para que coincida con el dialecto para el que se escribió la expresión.
Classic filter run under RFC 9535 → parse error or unexpected nodes
Switch engine to Classic (Goessner) → reproduces the original result
Llamar a una función de RFC 9535 como segmento independiente
length(), count(), match(), search() y value() son extensiones de función de RFC 9535 que solo son válidas dentro de un filtro [?...]. Una llamada en un segmento independiente como $.store.book.length() es rechazada por la gramática de RFC 9535 (es una extensión de jsonpath-plus, no estándar). Llama a la función dentro de un filtro y usa el motor RFC 9535 predeterminado: el motor Clásico (Goessner) no implementa estas funciones.
$.store.book.length() → parse error (not a valid RFC 9535 segment)
$.store.book[?length(@.title) > 15] → books with a title over 15 chars
Olvidar @ dentro de una expresión de filtro
Dentro de un filtro [?()], el elemento actual es @, no $. Escribir $.price se refiere de nuevo a la raíz del documento en lugar de al elemento bajo prueba, así que el filtro no selecciona nada o lo selecciona todo. Usa @ para direccionar miembros del elemento que se está filtrando.
$.store.book[?($.price < 10)] → wrong scope
$.store.book[?(@.price < 10)] → books under 10
Entrecomillar un nombre de miembro con la sintaxis equivocada
La notación de corchetes necesita comillas alrededor de las claves de cadena: $['store'] o $.store funcionan, pero $[store] (sin comillas dentro de corchetes) es un error de índice/identificador. Usa comillas dentro de los corchetes para cualquier clave con espacios, puntos o caracteres especiales: $['first name'].
$[store][book] → invalid bracket selectors
$['store']['book'] → same as $.store.book
Esperar que el descenso recursivo se detenga en el primer nivel
$..author no se detiene en la cima: recoge cada miembro author a cualquier profundidad. Si solo quieres los hijos directos, escribe la ruta completa. El descenso recursivo sobre un documento grande puede devolver muchos más nodos de los previstos.
$..price → every price anywhere in the tree
$.store.book[*].price → only book prices
Quién usa esta herramienta
- Extraer campos de una respuesta de API
- Extrae IDs de solicitud, atributos de recursos anidados o una lista de nombres de una carga útil JSON sin escribir código de recorrido. Construye la ruta aquí contra una respuesta de muestra, confirma que devuelve exactamente los nodos que quieres en la vista Valores, y luego pega la expresión validada en tu aplicación o prueba.
- Escribir aserciones para pruebas de integración
- Muchos marcos de pruebas y herramientas de pruebas de contrato (REST Assured, Karate, Postman) usan JSONPath para hacer aserciones sobre los cuerpos de respuesta. Redacta aquí la ruta de aserción, verifica que selecciona el nodo correcto contra una respuesta real y cópiala en tu prueba, detectando una ruta errónea antes de que la suite falle.
- Configurar transformaciones de datos en pipelines
- Kubernetes, AWS Step Functions, Azure Logic Apps y muchas herramientas ETL aceptan JSONPath para direccionar campos en cargas útiles de eventos. Prototipa aquí la ruta exacta contra un evento representativo, confirma que resuelve y colócala en la configuración de tu pipeline con la confianza de que apunta donde pretendes.
- Reproducir un resultado de jsonpath.com de forma privada
- ¿Tienes una expresión de un evaluador con servidor pero no puedes pegar tus datos en un sitio de terceros? Cambia al modo Clásico (Goessner), carga tu JSON y reproduce el mismo resultado localmente: ninguna carga útil sale nunca de tu navegador, así que los datos propietarios se quedan en tu máquina.
- Migrar expresiones heredadas a RFC 9535
- ¿Te mueves a un sistema que anuncia cumplimiento de RFC 9535? Ejecuta una expresión heredada en modo Clásico y luego cambia al motor RFC 9535 para ver si sigue analizándose y coincide con los mismos nodos. La comparación de doble motor señala las diferencias de filtro, unión y función que de otro modo te encontrarías en producción.
- Depurar por qué una ruta devuelve nodos erróneos
- Una ruta que selecciona demasiado o demasiado poco es difícil de razonar solo a partir de los valores. Cambia a la vista Rutas para ver la ubicación normalizada de cada coincidencia —el índice exacto del array, la cadena exacta de miembros— y el corte desfasado por uno o el descenso recursivo extraviado se vuelve obvio de inmediato.
- Enseñar o revisar JSONPath
- Abre una expresión funcional contra datos de muestra y recórrela selector por selector, alternando entre Valores y Rutas para que quien aprende vea tanto qué se selecciona como dónde vive. La chuleta y los ejemplos trabajados ofrecen una referencia estructurada para la revisión de código o la incorporación.
Notas de motor y algoritmo
- Motor RFC 9535 (jsonpath-rfc9535, sin dependencias)
- El motor predeterminado implementa la gramática de RFC 9535 del IETF directamente: tokeniza y analiza la expresión en un árbol de sintaxis abstracta y lo interpreta contra el documento. No hay eval ni constructor Function en ningún punto del camino, así que es inmune a la clase de errores de inyección de eval y funciona bajo una Content-Security-Policy estricta.
- Motor Clásico (jsonpath-plus, eval deshabilitado)
- El motor Clásico (Goessner) es jsonpath-plus, fijado a una versión parcheada (>= 10.4.0) y construido con la opción eval explícitamente puesta en false. Eso mantiene la compatibilidad con el dialecto de Goessner a la vez que cierra los vectores de ejecución remota de código rastreados como CVE-2024-21534 y CVE-2025-1302, que afectaban a la ruta de filtro basada en eval predeterminada de la biblioteca.
- Generación de rutas normalizadas
- Cada coincidencia se informa con su ruta normalizada de RFC 9535: una forma canónica que usa notación de corchetes con comillas simples ($['store']['book'][0]['title']) con los índices de array como enteros sin comillas. Las rutas normalizadas son estables y únicas por nodo, así que las expresiones equivalentes producen rutas idénticas, en lo que se apoyan las vistas Rutas y Ambas para identificar resultados sin ambigüedad.
- Fragmentos de motor de carga diferida
- Ambos motores se cargan como fragmentos de JavaScript separados solo cuando se seleccionan por primera vez, de modo que la página inicial se mantiene ligera y el motor que no usas nunca se descarga. Cambiar de motor reevalúa la expresión actual contra el documento actual de inmediato, sin recargar la página.
- Lectura de archivos locales y formateo de JSON
- El botón Subir usa la API FileReader del navegador para leer un archivo .json o .txt en la entrada enteramente del lado del cliente: el archivo nunca se transmite. Formatear JSON analiza y reserializa la entrada con una indentación de dos espacios, sacando a la luz los errores de análisis en línea para que el JSON mal formado se detecte antes de la evaluación.
- Enlaces permanentes mediante hash de URL (nunca transmitidos)
- El estado para compartir se codifica en el fragmento location.hash, que lleva el JSON, la expresión, el motor activo y la vista de resultados. Los navegadores nunca incluyen el fragmento en las peticiones HTTP, así que los servidores de go-tools.org no reciben ningún dato cuando se abre un enlace permanente; la hidratación ocurre enteramente en el dispositivo del destinatario.
Buenas prácticas de JSONPath
- Elige el motor que coincida con tu objetivo
- Si tu sistema posterior anuncia cumplimiento de RFC 9535, escribe y valida contra el motor RFC 9535. Si estás reproduciendo o manteniendo una expresión de una herramienta o biblioteca más antigua, usa Clásico (Goessner). Validar contra el dialecto equivocado es el motivo más común de que una ruta que funcionó en el probador falle en producción.
- Verifica con la vista Rutas, no solo con Valores
- La vista Valores te dice qué coincidió; la vista Rutas te dice dónde. Cuando una consulta devuelve valores que parecen correctos, todavía puede estar seleccionándolos de la ubicación equivocada: un descenso recursivo extraviado o un comodín demasiado amplio. Comprueba las rutas normalizadas para confirmar que la expresión apunta exactamente a los nodos que pretendes.
- Cuidado con el final exclusivo de un corte
- [0:2] selecciona los índices 0 y 1, no del 0 al 2: el límite final es exclusivo, igual que en Python y JavaScript. Los errores de corte desfasados por uno son el error de JSONPath más frecuente. Usa la vista Rutas para leer el índice exacto de cada elemento seleccionado y confirma el límite antes de enviar.
- Prefiere una ruta explícita al descenso recursivo cuando puedas
- $..price es cómodo pero coincide con todos los precios en cualquier parte del documento, incluidos los que no pretendías. Cuando conoces la estructura, escribe la ruta completa ($.store.book[*].price) para que la consulta se mantenga precisa y predecible a medida que crecen los datos. Reserva .. para formas genuinamente irregulares o desconocidas.
- Mantén consistentes los espacios y el entrecomillado en los filtros
- RFC 9535 sigue su gramática al pie de la letra para las expresiones de filtro, mientras que el dialecto clásico es más laxo. Escribe los filtros con limpieza —entrecomilla los literales de cadena con comillas simples ('fiction'), mantén los operadores espaciados y evita depender de un análisis indulgente— para que la misma expresión se evalúe igual sin importar qué motor o biblioteca acabe ejecutándola.
Preguntas frecuentes
¿Se envía mi JSON o mi expresión JSONPath a tu servidor?
¿Qué es JSONPath y para qué se usa?
¿Cuál es la diferencia entre RFC 9535 y la sintaxis clásica de Goessner?
¿Por qué la misma expresión devuelve resultados distintos en los dos motores, y cómo uso una expresión copiada de jsonpath.com?
¿Cómo funcionan las expresiones de filtro [?()]?
¿Qué hace el descenso recursivo (..)?
¿Qué son las funciones length(), count(), match(), search() y value() de RFC 9535?
¿Cómo funcionan los cortes de array [start:end:step]?
¿Qué es un selector de unión y cómo selecciono varias claves a la vez?
¿Puedo compartir una consulta JSONPath y su JSON mediante un enlace?
¿Hay un tamaño máximo de JSON?
¿En qué se diferencia de jsonpath.com y es seguro, sin eval?
¿Qué muestran las vistas Valores, Rutas y Ambas?
¿Funciona sin conexión y qué pasa con una Content-Security-Policy?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Conversor de Base64 a Imagen
Codificación y Formato
Decodifica una cadena Base64 o data URI de vuelta a una imagen en tu navegador. Previsualiza, lee dimensiones y MIME, luego descarga como PNG, JPG, GIF, SVG. Sin subir.
Convertidor de CSV a JSON
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
Conversor de .env a JSON
Codificación y Formato
Pega un archivo .env y obtén JSON al instante. Tus contraseñas, claves API y tokens nunca salen del navegador: 100% privado, sin subidas, gratis.
Conversor de HTML a Markdown
Codificación y Formato
Convierte HTML a Markdown limpio en tu navegador — tablas GFM, listas de tareas y enlaces. Elige encabezados ATX/Setext y enlaces en línea o por referencia. Ideal para migrar contenido web o alimentar LLMs. 100% privado.
Conversor de Imagen a Base64
Codificación y Formato
Convierte imágenes a data URI Base64 en tu navegador — PNG, JPG, GIF, WebP, SVG, ICO. Copia salida HTML, CSS, Markdown y JSON. 100% privado, sin subir nada.