softcreatr/jsonpath
A fast, eval-free JSONPath implementation for PHP 8.5+. Query arrays, objects, and ArrayAccess/traversables with unions, slices, wildcards, filters, regex, and deep equality. Includes tokenized parsing and internal caching.
JSONPath::RFC9535 mode with full standard query parsing, eager type validation, Unicode and escaped member names, mixed selector unions, and RFC filter and slice semantics. Existing calls retain their previous behavior.findPaths() for normalized RFC result paths, including ordered duplicate matches.length(), count(), match(), search(), and value() function extensions.Fixed tokenizer handling for quoted bracket keys containing $ so literals like ['[$the.size$]'] remain atomic and do not split into root tokens.
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/1.0.1...1.0.2
{} vs [], unsupported selectors no longer abort the runner, and dot-notation now accepts quoted keys with dots/spaces/leading @.?(true|false|null)), literal short-circuiting (&& false, || true), and empty filters now return the expected collections instead of throwing.Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/1.0.0...1.0.1
Version 1.0.0 is finally here!
$[name,year] and $["name","year"].']', '*', $, backslashes, and mixed punctuation.$..books[0,1,2,]).in/nin/!in, tautological expressions, and ?@ existence behavior per RFC.$[1:3,4], $[*,1]).Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.11.0...1.0.0
🔻 Breaking changes ahead:
JSONPathToken now uses a TokenType enum and the constructor signature changed accordingly.JSONPath options flag is now an int bitmask (was bool), requiring callers to pass integer flags.SliceFilter returns an empty result for non-positive step values (previously iterated indefinitely).QueryResultFilter now throws a JSONPathException for unsupported operators instead of silently proceeding.arrayValues throws on invalid types; ArrayAccess lookups check offsetExists before reading; traversables and objects are handled distinctly.TokenType enum, readonly value object for tokens, typed flags/options, and #[\Override] usage.Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.10.0...0.11.0
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.9.1...0.10.0
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.9.0...0.9.1
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.3...0.9.0
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.2...0.8.3
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.1...0.8.2
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.8.0...0.8.1
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.7.5...0.7.6
Full Changelog: https://github.com/SoftCreatR/JSONPath/compare/0.7.5...0.8.0
🔻 Breaking changes ahead:
=~)How can I help you explore Laravel packages today?