JSONPath
Consulta los cuerpos JSON de solicitudes y respuestas en Proxyman con JSONPath. Aprende la sintaxis, los operadores de filtro y ejemplos de rutas que puedes copiar.
1. ¿Qué es?
JSONPath es un lenguaje de consulta que filtra datos JSON de forma rápida. En Proxyman, puedes usarlo en la pestaña JSON, en la pestaña Treeview y en columnas personalizadas.

2. Cómo usarlo
- En el panel Request o Response, haz clic en el botón +
- Selecciona JSON para añadir la pestaña JSON
- La barra de filtros aparece encima del cuerpo JSON
- Selecciona el modo de filtro JSON Path o jq
3. Sintaxis
| Operador | Descripción |
|---|---|
$ | El elemento raíz sobre el que se consulta. Todas las expresiones de ruta empiezan por este. |
@ | El nodo actual que procesa un predicado de filtro. |
* | Comodín. Disponible en cualquier lugar donde se requiera un nombre o un valor numérico. |
.. | Búsqueda profunda. Disponible en cualquier lugar donde se requiera un nombre. |
.<name> | Hijo con notación de punto |
['<name>' (, '<name>')] | Hijo o hijos con notación de corchetes |
[<number> (, <number>)] | Índice o índices de array |
[start:end] | Operador de slice de array |
[?(<expression>)] | Expresión de filtro. La expresión debe devolver un valor booleano. |
Operadores de filtro
Los filtros son expresiones lógicas que se usan para filtrar arrays. Un filtro típico sería [?(@.age > 18)], donde @ representa el elemento actual que se procesa.
| Operador | Descripción |
|---|---|
| == | El operando izquierdo es igual al derecho (ten en cuenta que 1 no es igual a '1') |
| != | El operando izquierdo no es igual al derecho |
| < | El operando izquierdo es menor que el derecho |
| <= | El operando izquierdo es menor o igual que el derecho |
| > | El operando izquierdo es mayor que el derecho |
| >= | El operando izquierdo es mayor o igual que el derecho |
| =~ | El operando izquierdo coincide con la expresión regular [?(@.name =~ /foo.*?/i)] |
| in | El operando izquierdo existe en el derecho [?(@.size in ['S', 'M'])] |
| nin | El operando izquierdo no existe en el derecho |
| subsetof | El operando izquierdo es un subconjunto del derecho [?(@.sizes subsetof ['S', 'M', 'L'])] |
| anyof | El operando izquierdo tiene elementos en común con el derecho [?(@.sizes anyof ['M', 'L'])] |
| noneof | El operando izquierdo no tiene elementos en común con el derecho [?(@.sizes noneof ['M', 'L'])] |
| size | El tamaño del operando izquierdo (array o cadena) debe coincidir con el derecho |
| empty | El operando izquierdo (array o cadena) debe estar vacío |
Ejemplos de rutas
Dados los siguientes datos JSON:
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
| JsonPath | Resultado |
|---|---|
| $.store.book[*].author | Los autores de todos los libros |
| $..author | Todos los autores |
| $.store.* | Todos los elementos de store: los libros y la bicicleta |
| $.store..price | El precio de todo |
| $..book[2] | El tercer libro |
| $..book[-2] | El penúltimo libro |
| $..book[0,1] | Los dos primeros libros |
| $..book[:2] | Todos los libros desde el índice 0 (incluido) hasta el índice 2 (excluido) |
| $..book[1:2] | Todos los libros desde el índice 1 (incluido) hasta el índice 2 (excluido) |
| $..book[-2:] | Los dos últimos libros |
| $..book[2:] | Todos los libros desde el índice 2 (incluido) hasta el final |
| $..book[?(@.isbn)] | Todos los libros con número ISBN |
| $.store.book[?(@.price < 10)] | Todos los libros de store más baratos que 10 |
| $..book[?(@.price <= $['expensive'])] | Todos los libros de store que no son «expensive» |
| $..book[?(@.author =~ /.*REES/i)] | Todos los libros que coinciden con la expresión regular (sin distinguir mayúsculas) |
| $..* | Devuelve todo |
| $..book.length() | El número de libros |