Volver a actualizaciones
Nuevo releaseAug 17, 2026

JSONPath v10.4.1

Un fork de JSONPath de http://goessner.net/articles/JsonPath/

Compartir

npm

testing badge coverage badge

Known Vulnerabilities

Licenses badge

Node.js CI status

(ver también licencias para dependencias de desarrollo)

JSONPath Plus

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.

Características

  • Conforme con la especificación original de jsonpath
  • Adiciones o elaboraciones convenientes no proporcionadas en la especificación original:
    • ^ para obtener el padre de un elemento coincidente
    • ~ para obtener los nombres de propiedad de los elementos coincidentes (como array)
    • Selectores de tipo para obtener:
      • Tipos JSON básicos: @null(), @boolean(), @number(), @string(), @array(), @object()
      • @integer()
      • El tipo compuesto @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
      • Tipos no JSON que pueden usarse no obstante al consultar objetos de JavaScript no JSON (@undefined(), @function(), @nonFinite())
    • @path/@parent/@property/@parentProperty/@root selectores abreviados dentro de filtros
    • Escapado
      • ` para escapar la secuencia restante
      • Sintaxis @['...']/?@['...'] para escapar caracteres especiales dentro de nombres de propiedad en filtros
    • Documenta $.. (obtener todos los componentes padre)
  • Formatos de exportación ESM y UMD
  • Además de los valores consultados, puede devolver diversa meta-información, incluyendo rutas o punteros al valor, así como el objeto padre y el nombre de la propiedad padre (para permitir la modificación).
  • Utilidades para convertir entre rutas, arrays y punteros
  • Opción para prevenir evaluaciones permitidas en la especificación original o proporcionar un sandbox para los valores evaluados.
  • Opción de callback para manejar los resultados a medida que se obtienen.

Benchmarking

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.

Instalación```shell

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>

ESM (Empaquetadores)

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.

Propiedades

Las propiedades que se pueden suministrar en el objeto de opciones o en el método evaluate (como primer argumento) incluyen:

Categorías