Probador de JSONPath
Pruebe expresiones JSONPath contra sus datos JSON al instante con nuestra herramienta de evaluación gratuita en línea. Escriba consultas JSONPath para extraer elementos de datos específicos de estructuras JSON complejas y vea resultados en tiempo real mientras escribe. Ya sea que esté aprendiendo la sintaxis de JSONPath, depurando extracciones de respuestas de API, configurando tuberías de datos, creando reglas de automatización o explorando documentos JSON anidados, este probador interactivo proporciona retroalimentación instantánea con los valores coincidentes resaltados en el árbol del documento. Admite todas las características estándar de JSONPath, incluyendo expresiones de filtro, descenso recursivo, segmentación de arreglos y selecciones con comodines.
Qué es
JSONPath Tester es una herramienta de desarrollo interactiva para escribir, probar y depurar expresiones JSONPath en documentos JSON en tiempo real. JSONPath es un lenguaje de consulta para JSON similar a XPath para XML, que proporciona una sintaxis concisa para navegar y extraer partes específicas de estructuras de datos JSON. Fue diseñado originalmente por Stefan Goessner y desde entonces se ha estandarizado en varias implementaciones en diferentes lenguajes de programación (Jayway JsonPath para Java, jsonpath-ng para Python, JSONPath Plus para JavaScript). Nuestro probador admite la especificación completa de JSONPath, incluyendo: selección de raíz ($), selección de hijo (.key o ['key']), comodín (* para todos los elementos), descenso recursivo (.. para buscar en todos los niveles), indexación de matrices ([n]), segmentación de matrices ([inicio:fin:paso]), expresiones de filtro (@.campo == valor o @.campo > n), expresiones de script, unión de índices o claves, y funciones de cadena (como .length()). La herramienta proporciona validación de sintaxis para expresiones JSONPath, resaltando expresiones inválidas antes de la evaluación, y muestra resultados tanto en formato de matriz (como lo devuelve JSONPath) como en vista de árbol que muestra dónde ocurren las coincidencias en la estructura del documento.
Cómo usar
- Pegue o ingrese su documento JSON en el panel de datos JSON en el lado izquierdo de la interfaz
- Escriba su expresión JSONPath en el campo de entrada de consulta en la parte superior, utilizando la sintaxis estándar de JSONPath que comienza con $ para el elemento raíz.
- Observe cómo el panel de resultados en tiempo real se actualiza automáticamente mientras escribe, mostrando todos los valores coincidentes extraídos de su documento JSON
- Explore el panel de valores coincidentes para ver la matriz exacta de resultados que su expresión devolvería en el código.
- Use el panel de error/depuración debajo de la entrada para ver cualquier error de sintaxis de JSONPath con indicadores de posición para una solución rápida de problemas.
Ejemplos
Entrada: JSON: {store:{book:[{title:A},{title:B}]}} Ruta: $.store.book[*].title
Proceso: Navegar root.store.book → Comodín * todos los elementos → Extraer .title
Resultado: ["A", "B"]
Entrada: Ruta: $..price (descenso recursivo)
Proceso: Buscar recursivamente todos los niveles → Coincidir clave 'price' → Recopilar valores
Resultado: [9.99, 14.50, 7.00]
Búsquedas Relacionadas
La gente también busca: jsonpath, probador de rutas JSON, evaluador de jsonpath, consulta de jsonpath, expresión de jsonpath, extracción de datos json.
jsonpathprobador de rutas JSONevaluador de jsonpathconsulta de jsonpathexpresión de jsonpathextracción de datos jsonlenguaje de consulta jsonfiltro json
Preguntas Frecuentes
¿Qué es JSONPath y cuándo debería usarlo en lugar de código nativo?
JSONPath es un lenguaje de consulta para JSON que le permite escribir expresiones concisas para seleccionar, filtrar y extraer datos de estructuras JSON anidadas sin escribir bucles ni lógica condicional. Debería usar JSONPath cuando necesite configurar reglas de extracción de datos en archivos externos, herramientas o especificaciones declarativas en lugar de codificarlas directamente en su aplicación. Los casos de uso comunes incluyen: configurar transformaciones de respuesta de API Gateway (como las plantillas de mapeo de AWS API Gateway), escribir reglas de extracción de datos para canalizaciones ETL donde los analistas de negocios pueden escribir expresiones JSONPath, implementar filtrado dinámico en herramientas de paneles e informes, seleccionar datos de prueba desde JSON complejo en pruebas automatizadas, y construir herramientas low-code/no-code donde los usuarios especifiquen extracciones de datos sin codificación. Las bibliotecas de lenguajes de programación compilan expresiones JSONPath en tiempo de ejecución, por lo que obtiene una extracción de datos dinámica y configurable sin necesidad de redespliegue.
¿Cuál es la sintaxis para expresiones JSONPath básicas y avanzadas?
Las expresiones básicas de JSONPath comienzan con $ (raíz), usan .key para acceso a hijos de objetos ($..store.book[0].title navega al primer título de libro en cualquier tienda), usan [n] para indexación de arreglos, usan [*] para comodines de arreglo, y usan .. para descenso recursivo (encuentra todos los campos title en cualquier nivel de anidación). Las expresiones avanzadas incluyen predicados de filtro [@.price > 10 para filtrar arreglos por condiciones], segmentación de arreglos [0:5:2 para inicio:fin:paso], operadores de unión [0,2,4 para múltiples índices], funciones de longitud para obtener tamaños de arreglos, y notación de corchetes ['key'] para claves que contengan caracteres especiales o espacios. Por ejemplo: $.store.book[?(@.price < 10)].title selecciona títulos de libros menores de $10, y $..[?(@.category == fiction)] selecciona todos los objetos con el campo category igual a fiction en cualquier nivel de anidación.
¿En qué se diferencia JSONPath de XPath y JSON Pointer?
JSONPath está inspirado en XPath (para XML) pero simplificado para el modelo de datos más simple de JSON: JSONPath usa $ para la raíz en lugar de / de XPath, usa .key en lugar del eje hijo /key de XPath, soporta .. para descenso recursivo similar a // de XPath, e incluye expresiones de filtro similares a los predicados de XPath. JSON Pointer (RFC 6901) es un estándar mucho más simple que identifica un único valor específico en un documento JSON usando /claves/separadas/por/0/índices/de/array. A diferencia de JSONPath, que puede devolver múltiples valores y filtrar resultados, JSON Pointer siempre devuelve exactamente un valor o falla. JSONPath es la opción correcta cuando necesitas extraer múltiples valores coincidentes, navegar recursivamente, filtrar resultados o especificar consultas dinámicamente. JSON Pointer es más simple y apropiado cuando identificas de manera única un valor específico (como en operaciones de JSON Patch o referencias OpenAPI $ref).
¿Puedo usar JSONPath en diferentes lenguajes de programación?
Sí, las bibliotecas JSONPath están disponibles para la mayoría de los lenguajes de programación principales. Las implementaciones notables incluyen: Jayway JsonPath para Java (la implementación más completa, ampliamente utilizada a través de Spring Boot), jsonpath-ng y jsonpath-python para Python, JSONPath Plus para JavaScript (Node.js y navegador, utilizado por esta herramienta), GoJSONGo para Go, rust-jsonpath para Ruby y JSON::Path para Perl. La mayoría de las implementaciones siguen la misma sintaxis pero tienen diferencias sutiles en el soporte de expresiones de filtro, el comportamiento de descenso recursivo y el manejo de casos límite. Al transferir expresiones JSONPath entre lenguajes, pruebe a fondo, ya que las expresiones de filtro con condiciones complejas pueden comportarse de manera diferente. Algunas implementaciones se acercan más a la especificación original de Goessner, mientras que otras siguen el nuevo estándar borrador IETF RFC 9535 para JSONPath, que se publicó en febrero de 2024.
¿Por qué mi expresión JSONPath devuelve resultados vacíos?
Las causas comunes de resultados vacíos de JSONPath incluyen: recorrido incorrecto de la ruta (verifique que cada nivel de su ruta exista en el documento), distinción entre mayúsculas y minúsculas (las claves JSON distinguen entre mayúsculas y minúsculas, Name es diferente de name), falta de pasos de descenso recursivo (use .. si no conoce la profundidad exacta de anidación), índices de array incorrectos (los arrays JSON están indexados desde cero, por lo que [0] es el primer elemento), falta de comillas en la notación de corchetes (debe ser ['key'] no [key]), errores de sintaxis en expresiones de filtro (use @ no $ para referenciar el nodo actual en los filtros), y el nodo de resultado es nulo o indefinido (JSONPath puede omitir nodos nulos en algunas implementaciones). Comience simplificando su expresión a una ruta básica y verifique que devuelva resultados, luego agregue complejidad progresivamente. Use la vista de árbol de nuestro probador para verificar que la estructura del documento coincida con lo que espera antes de construir expresiones complejas.