Ejecute consultas JSONPath RFC 9535 sobre el JSON que pegue y vea resaltada cada coincidencia
Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio.JSONPath extrae valores de un JSON con una expresión breve. $.store.book[*].author devuelve todos los autores, $..price todos los precios a cualquier profundidad y $..book[[email protected] < 10] solo los libros de menos de 10. Este probador sigue la RFC 9535, el estándar de 2024, y resalta cada coincidencia en el JSON formateado.
Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés
Pegue el JSON en el panel JSON, o pulse Probar un ejemplo.
Escriba una consulta en el cuadro JSONPath, o elija una en Ejemplos.
Vea las coincidencias marcadas en la pestaña Resaltado, o abra Resultados para ver cada ruta y valor.
Pulse Copiar valores para obtener las coincidencias como array JSON, o Copiar rutas.
Este probador de JSONPath ejecuta una consulta sobre el JSON que pegue y muestra el resultado de tres formas: una lista de valores coincidentes, la ruta normalizada de cada coincidencia y el resaltado de las coincidencias dentro del documento formateado. El resultado se actualiza mientras escribe, así que puede construir una expresión paso a paso y ver dónde falla.
El motor implementa la RFC 9535, el estándar JSONPath publicado por el IETF en 2024. Admite la raíz $, el acceso a hijos con punto y con corchetes, el operador de descenso recursivo .., comodines, índices de array incluidos los negativos, slices como [1:5:2] y [::-1], y expresiones de filtro con ==, !=, <, <=, >, >=, &&, || y !. Incluye las cinco funciones estándar: length(), count(), value(), match() y search(), donde las dos últimas aceptan expresiones regulares en la forma I-Regexp. Las consultas que incumplen las reglas de tipos del estándar, como comparar una consulta que puede devolver varios nodos, se rechazan con un mensaje que explica por qué.
Muchas bibliotecas antiguas, como el JSONPath original de 2007 y Jayway para Java, difieren del estándar en pequeños detalles: algunas necesitan paréntesis alrededor de los filtros, como en [?(@.price < 10)], que aquí sigue funcionando; otras permiten expresiones de script o funciones adicionales, que la RFC 9535 no contempla. Si una consulta de la documentación de una biblioteca se rechaza, el mensaje suele indicar la diferencia.
El JSON no válido se indica con la línea y la columna del primer problema. Los números se leen como números de JavaScript, así que los enteros mayores que 2^53 pierden precisión, y una clave repetida conserva su último valor.
Lo que no hace: sintaxis de JMESPath o jq, editar el JSON ni descargar una URL. Todo se ejecuta en su navegador. Herramientas relacionadas: JSON Formatter, JSON Diff, JSON to TypeScript.
Use un selector de filtro: $.items[[email protected] == 'active'] conserva los elementos cuyo status es active. La @ representa cada elemento por turno. Combine condiciones con && y ||, compare números con < y >, y escriba [email protected] solo para conservar los elementos que tengan un campo email.
Un solo punto toma un hijo del nodo actual, así que $.store.book lee un nivel cada vez. Dos puntos buscan a cualquier profundidad, así que $..price encuentra todos los campos price del documento, también dentro de arrays. El descenso recursivo es cómodo, pero en respuestas grandes puede coincidir con más de lo previsto.
La RFC 9535, publicada por el IETF en febrero de 2024, que es el primer estándar formal de JSONPath. Las consultas escritas para bibliotecas antiguas suelen funcionar, incluidos los filtros envueltos en ?( ), pero las expresiones de script y las funciones propias de cada biblioteca no forman parte del estándar y se rechazan con una explicación.
Use un índice negativo: $.items[-1] es el último elemento y $.items[-2] el anterior. También sirve un slice con inicio negativo, así que $.items[-3:] devuelve los tres últimos. Los índices más allá del final simplemente no devuelven nada en lugar de dar un error.
Una ruta normalizada es la ubicación exacta y única de una coincidencia, escrita en una forma fija definida por la RFC 9535, como $['store']['book'][0]['title']. Cada resultado muestra su ruta normalizada, útil para señalar un valor en un informe de error o en una aserción de prueba.
Sí, con match() y search(). match(@.code, 'A[0-9]+') exige que toda la cadena encaje con el patrón, mientras que search(@.name, 'smith') lo busca en cualquier parte. Los patrones usan I-Regexp, un subconjunto portable de las expresiones regulares, así que atajos como \d y las búsquedas anticipadas no se aceptan.
¿Sigue sin resolverlo? Pregunte sobre Probador de JSONPath y cualquiera que lo sepa puede responder. No se necesita cuenta.