JSONPath Tester
Prueba expresiones JSONPath contra datos JSON.
Acerca de esta herramienta
JSONPath es un lenguaje de consulta para datos JSON, similar a XPath para XML. El probador de JSONPath ayuda a desarrolladores y analistas de datos a validar y depurar expresiones de JSONPath probándolas directamente contra documentos JSON de ejemplo. Esta herramienta elimina la incertidumbre al trabajar con APIs, archivos de configuración o estructuras de datos complejas que requieren navegación de ruta precisa.
Para usar la herramienta, pegue sus datos JSON en el campo de entrada e ingrese una expresión JSONPath en el campo de expresión. A medida que escribe, el probador muestra inmediatamente qué elementos coinciden con su expresión, junto con sus valores. Los patrones comunes incluyen $. para acceso a la raíz, .property para propiedades de objetos, [0] para índices de matrices y [*] para seleccionar todos los elementos de la matriz. Los resultados muestran todas las rutas y valores coincidentes, lo que facilita refinar su consulta hasta extraer exactamente lo que necesita.
Preguntas Frecuentes
Implementación de Código
# pip install jsonpath-ng
from jsonpath_ng import parse
data = {
"store": {
"book": [
{"title": "Moby Dick", "author": "Herman Melville", "price": 8.99},
{"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "price": 12.99},
{"title": "1984", "author": "George Orwell", "price": 6.99}
]
}
}
# Match all book titles
expr = parse("$.store.book[*].title")
titles = [match.value for match in expr.find(data)]
print(titles)
# ['Moby Dick', 'The Great Gatsby', '1984']
# Filter books cheaper than $10
expr2 = parse("$.store.book[?(@.price < 10)]")
cheap_books = [match.value for match in expr2.find(data)]
print(cheap_books)
# [{'title': 'Moby Dick', ...}, {'title': '1984', ...}]
# Recursive descent: find all authors anywhere in the document
expr3 = parse("$..author")
authors = [match.value for match in expr3.find(data)]
print(authors)
# ['Herman Melville', 'F. Scott Fitzgerald', 'George Orwell']Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.