Class: JSONPathEnvironment
A configuration object from which JSONPath queries can be evaluated.
An environment is where you'd register custom function extensions or set the maximum recursion depth limit, for example.
Constructors
new JSONPathEnvironment()
new JSONPathEnvironment(
options
):JSONPathEnvironment
Parameters
options
JSONPathEnvironmentOptions
= {}
Environment configuration options.
Returns
Defined in
Properties
functionRegister
functionRegister:
Map
<string
,FilterFunction
>
A map of function names to objects implementing the FilterFunction interface. You are free to set or delete custom filter functions directly.
Defined in
keysPattern
readonly
keysPattern:RegExp
The pattern to use for the non-standard keys selector.
Defined in
maxIntIndex
readonly
maxIntIndex:number
The maximum number allowed when indexing or slicing an array. Defaults to 2**53 -1.
Defined in
maxRecursionDepth
readonly
maxRecursionDepth:number
The maximum number of objects and/or arrays the recursive descent selector
can visit before a JSONPathRecursionLimitError
is thrown.
Defined in
minIntIndex
readonly
minIntIndex:number
The minimum number allowed when indexing or slicing an array. Defaults to -(2**53) -1.
Defined in
nondeterministic
readonly
nondeterministic:boolean
If true
, enable nondeterministic ordering when iterating JSON object data.
Defined in
strict
readonly
strict:boolean
Indicates if the environment should to be strict about its compliance with JSONPath standards.
Defaults to true
. Setting strict
to false
currently has no effect.
If/when we add non-standard features, the environment's strictness will
control their availability.
Defined in
Methods
checkWellTypedness()
checkWellTypedness(
token
,args
):FilterExpression
[]
Check the well-typedness of a function's arguments at compile-time.
This method is called by the parser when parsing function calls. It is expected to throw a JSONPathTypeError if the function's parameters are not well-typed.
Override this if you want to deviate from the JSONPath Spec's function extension type system.
Parameters
token
The Token starting the function call. Token.value
will contain the name of the function.
args
One FilterExpression for each argument.
Returns
Defined in
compile()
compile(
path
):JSONPathQuery
Parameters
path
string
A JSONPath query to parse.
Returns
A new JSONPathQuery object, bound to this environment.
Defined in
entries()
entries(
obj
): [string
,JSONValue
][]
Return an array of key/values of the enumerable properties in obj.
If you want to introduce some nondeterminism to iterating JSON-like
objects, do it here. The wildcard selector, descendent segment and
filter selector all use this.environment.entries
.
Parameters
obj
A JSON-like object.
Returns
[string
, JSONValue
][]
Defined in
lazyQuery()
lazyQuery(
path
,value
):IterableIterator
<JSONPathNode
,any
,any
>
A lazy version of query which is faster and more memory efficient when querying some large datasets.
Parameters
path
string
A JSONPath query to parse and evaluate against value.
value
Data to which path will be applied.
Returns
IterableIterator
<JSONPathNode
, any
, any
>
A sequence of JSONPathNode objects resulting from applying path to value.
Defined in
match()
match(
path
,value
):undefined
|JSONPathNode
Return a JSONPathNode instance for the first object found in value matching path.
Parameters
path
string
A JSONPath query.
value
JSON-like data to which the query path will be applied.
Returns
undefined
| JSONPathNode
The first node in value matching path, or undefined
if
there are no matches.
Defined in
query()
query(
path
,value
):JSONPathNodeList
Parameters
path
string
A JSONPath query to parse and evaluate against value.
value
Data to which path will be applied.
Returns
The JSONPathNodeList resulting from applying path to value.
Defined in
setupFilterFunctions()
protected
setupFilterFunctions():void
A hook for setting up the function register. You are encouraged to
override this method in classes extending JSONPathEnvironment
.
Returns
void