Lección 9
Consultas con JSONPath
Extrae valores de documentos anidados mediante expresiones de ruta.
Cuando un documento JSON es grande, a menudo necesitas un solo campo sin recorrer mentalmente cada nivel. JSONPath es un lenguaje de consulta — similar en espíritu a XPath para XML — para seleccionar nodos en árboles JSON.
Documento de ejemplo
{
"store": {
"books": [
{ "title": "JSON 101", "price": 12.5 },
{ "title": "API Design", "price": 28 }
]
}
}
Expresiones habituales
| Expresión | Significado |
|---|---|
$ | Raíz del documento |
$.store.books | El array books |
$.store.books[0].title | Título del primer libro |
$.store.books[*].price | Todos los precios |
$..price | price en cualquier lugar bajo la raíz |
Lee $ como «empieza aquí», . como «propiedad hija», [n] como índice de array, [*] como cada elemento y .. como descenso recursivo.
Casos de uso
- Extraer un ID de usuario de una respuesta de API anidada en tests o scripts
- Filtrar eventos de log donde
level == "error"en payloads heterogéneos - Documentar «dónde encontrar» campos en guías de integración
JSONPath frente a código manual
En JavaScript podrías escribir data.store.books[0].title. JSONPath brilla cuando:
- La profundidad varía entre versiones de API
- Consultas la misma ruta en config en muchos archivos
- Las herramientas exponen un cuadro de ruta para inspección ad hoc
Limitaciones
Las implementaciones difieren ligeramente en extensiones (filtros, slices). En pipelines de producción, fija la versión de la biblioteca y añade tests para rutas críticas. JSONPath lee estructura — no corrige JSON inválido; parsea y valida primero.