property:"value"

{ property: "value" }

true

property:"value"

// Extra properties do not affect the result { property: "value", something: ["extra", { and: "complex" } ] }

true

property:*

// Wildcards match anything { property: 12 }

true

*:value

// Wildcards can be used in properties { anything: "value" }

true

!property:value

// It is possible to negate results { property: "value" }

false

property:<number>

// JSON types can be enforced { property: -7.20 }

true

/user/<number>

// Array patterns are built with a path-like syntax ["user", 50]

true

method:GET,path:/articles/*

// Array patterns can be embedded in objects { method: "GET", path: ["articles", "rest-is-wonderful"] }

true

/**/saturn

// Multiple elements can be matched with ellipsis ["planets", 6, "many-moons", "saturn"]

true

/**/saturn

// Ellipsis match zero elements as well ["saturn"]

true

/**/saturn/**/moons

// Ellipsis are non-greedy ["saturn", 62, "moons", "saturn", 62, "moons"]

false

userAgent:(os:"linux",browser:"firefox")

// Object structures can be nested { userAgent: { os: "linux", browser: "firefox", device: "tablet" } }

true

/[/users/*]/[/articles/*]

// Array structures can be nested too [ ["users", 60], ["articles", 70] ]

true