
Un fork de JSONPath de http://goessner.net/articles/JsonPath/
(ver también licencias para dependencias de desarrollo)
Analiza, transforma y extrae selectivamente datos de documentos JSON (y objetos de JavaScript).
jsonpath-plus expande la especificación original para añadir algunos
operadores adicionales y hace explícitos algunos comportamientos que la original
no detallaba.
Prueba la demo en el navegador o Runkit (Node).
Nota: Este proyecto no se mantiene activamente en la actualidad. Podemos aceptar PRs bien documentados o algunas actualizaciones simples, pero no buscamos hacer correcciones ni añadir nuevas funciones por nuestra cuenta.
^ para obtener el padre de un elemento coincidente~ para obtener los nombres de propiedad de los elementos coincidentes (como array)@null(), @boolean(), @number(), @string(), @array(), @object()@integer()@scalar() (que también acepta undefined y
números no finitos al consultar objetos de JavaScript, así como todos los tipos básicos no objeto/no función)@other() utilizable junto con un otherTypeCallback definido por el usuario@undefined(), @function(), @nonFinite())@path/@parent/@property/@parentProperty/@root selectores abreviados dentro de filtros` para escapar la secuencia restante@['...']/?@['...'] para escapar caracteres especiales dentro de
nombres de propiedad en filtros$.. (obtener todos los componentes padre)jsonpath-plus es consistentemente eficiente con conjuntos de datos tanto grandes como pequeños en comparación con otras librerías de consulta JSON según json-querying-performance-testing. Puedes verificar estos hallazgos ejecutando el proyecto tú mismo y añadiendo más casos de rendimiento.
npm install jsonpath-plus
## Configuración
### Node.js```js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
Para uso en navegador puedes incluir directamente dist/index-browser-umd.cjs; no
es necesaria ninguna magia de Browserify:```html
### ESM (Navegadores modernos)
También puedes usar importaciones de módulos ES6 (para navegadores modernos):```html
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
O si estás empaquetando tu JavaScript (p. ej., con Rollup), solo usa,
ten en cuenta que mainFields
debe incluir browser para las compilaciones del navegador (para Node, la opción predeterminada, que
verifica module, debería ser suficiente):```js
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
## Uso
La firma completa disponible es:```
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
Los argumentos path, json, callback y otherTypeCallback
pueden expresarse alternativamente (junto con cualquier otra de las
propiedades disponibles) en options.
Tenga en cuenta que result contendrá todos los elementos encontrados (opcionalmente
envueltos en un array) mientras que callback puede utilizarse si
desea realizar alguna operación a medida que se descubre cada elemento, con
la función de callback ejecutándose de 0 a N veces dependiendo
del número de elementos independientes que se encuentren en el resultado.
Consulte la documentación a continuación para más información sobre los argumentos disponibles de JSONPath.
Véase también la documentación de la API.
Las propiedades que se pueden suministrar en el objeto de opciones o en el método evaluate (como primer argumento) incluyen: