Path Parser
@finnair/path-parser
contains nearley.js based parsers for Path
and PathMatcher
.
See @finnair/path
or instructions on how to use Path
and PathMatcher
.
Getting Started
Install v-validation using yarn
:
yarn add @finnair/path-parser
Or npm
:
npm install @finnair/path-parser
Parsing Paths
import { parsePath } from '@finnair/path-parser';
parsePath(`$.array[1]["\\"property\\" with spaces and 'quotes'"]`);
parsePath(`$['single quotes']`);
parsePath(`$['single\'quote']`);
parsePath(`$['\\u0027']`);
Parsing PathMatchers
parsePathMatcher
parses simple JsonPath like expressions. Supported expressions are
Expression | Description |
---|
$.property | Identifiers matching RegExp /^[a-zA-Z_][a-zA-Z0-9_]*$/ |
$[0] | Index match |
$.* | Any property matcher, wildcard (matches also array indexes) |
$[*] | Any index matcher, wildcard (matches only array indexes) |
$["JSON string encoded property"] | Property as JSON encoded string |
$['JSON string encoded property'] | Property as single quoted, but otherwise JSON encoded, string(*) |
$[union,"of",4,'components'] | Union matcher that also supports identifiers and JSON encoded strings |
*) This is the official way of JsonPath
, but the specification is a bit unclear on the encoding. In this library we prefer proper JSON string encoding with double quotes.
import { parsePathMatcher } from '@finnair/path-parser';
parsePathMatcher(`$.array[0][*].*['union',"of",properties,1]`);