- Add
@scalar()
type operator (in JavaScript mode, will also include) - Version 0.14.0
- Avoid double-encoding path in results
- Version 0.13.1
- Breaking change (from version 0.11): Silently strip
~
and^
operators and type operators such as@string()
inJSONPath.toPathString()
calls. - Breaking change: Remove
Array.isArray
polyfill as no longer supporting IE <= 8 - Feature: Allow omission of options first argument to
JSONPath
- Feature: Add
JSONPath.toPointer()
and "pointer"resultType
option. - Fix: Correctly support
callback
andotherTypeCallback
as numbered arguments toJSONPath
. - Fix: Enhance Node checking to avoid issue reported with angular-mock
- Fix: Allow for
@
or other special characters in at-sign-prefixed property names (by use of[?(@['...'])]
or[(@['...'])]
). - Version 0.13.0
- Breaking change: Problems with upper-case letters in npm is causing us to rename the package, so have renamed package to "jsonpath-plus" (there are already package with lower-case "jsonpath" or "json-path"). The new name also reflects that there have been changes to the original spec.
- Version 0.12.0
- Actually add the warning in the README that problems in npm with upper-case letters is causing us to rename to "jsonpath-plus" (next version will actually apply the change).
- Version 0.11.2
- Give warning in README that problems in npm with upper-case letters is causing us to rename to "jsonpath-plus" (next version will actually apply the change).
- Version 0.11.1
- Breaking change: For unwrapped results, return
undefined
instead offalse
upon failure to find path (to allow distinguishing ofundefined
--a non-allowed JSON value--from the valid JSON values,null
orfalse
) and return the exact value upon falsy single results (in order to allow return ofnull
) - Deprecated: Use of
jsonPath.eval()
; use new class-based API instead - Feature: AMD export
- Feature: By using
self
instead ofwindow
export, allow JSONPath to be trivially imported into web workers, without breaking compatibility in normal scenarios. See MDN on self - Feature: Offer new class-based API and object-based arguments (with option to run new queries via
evaluate()
method without resupplying config) - Feature: Allow new
preventEval=true
andautostart=false
option - Feature: Allow new callback option to allow a callback function to execute as each final result node is obtained
- Feature: Allow type operators: JavaScript types (
@boolean()
,@number()
,@string()
), other fundamental JavaScript types (@null()
,@object()
,@array()
), the JSONSchema-added type,@integer()
, and the following non-JSON types that can nevertheless be used with JSONPath when querying non-JSON JavaScript objects (@undefined()
,@function()
,@nonFinite()
). Finally,@other()
is made available in conjunction with a new callback option,otherTypeCallback
, can be used to allow user-defined type detection (at least until JSON Schema awareness may be provided). - Feature: Support "parent" and "parentProperty" for resultType along with "all" (which also includes "path" and "value" together)
- Feature: Support custom
@parent
,@parentProperty
,@property
(in addition to custom property@path
) inside evaluations - Feature: Support a custom operator (
~
) to allow grabbing of property names - Feature: Support
$
for retrieval of root, and document this as well as$..
behavior - Feature: Expose cache on
JSONPath.cache
for those who wish to preserve and reuse it - Feature: Expose class methods
toPathString
for converting a path as array into a (normalized) path as string andtoPathArray
for the reverse (though accepting unnormalized strings as well as normalized) - Fix: Allow
^
as property name - Fix: Support
.
within properties - Fix:
@path
in index/property evaluations - Version 0.11
- Support for parent selection via
^
- Access current path via
@path
in test statements - Allowing for multi-statement evals
- Performance improvements
- Version 0.10
- Support a sandbox arg to eval
- Use vm.runInNewContext in place of eval
- Version 0.9.0