- Added support for JEP-9,
including unary filter expressions, and
&&
filter expressions. - Fixed various parsing issues, including not removing escaped single quotes from raw string literals.
- Added support for the
map
function. - Fixed several issues with code generation.
- Added support for JEP-12
and raw string literals (e.g.,
'foo'
).
- Added
JmesPath\Env::cleanCompileDir()
to delete any previously compiled JMESPath expressions.
- Moving to a flattened namespace structure.
- Runtimes are now only PHP callables.
- Fixed an error in the way empty JSON literals are parsed so that they now return an empty string to match the Python and JavaScript implementations.
- Removed functions from runtimes. Instead there is now a function dispatcher class, FnDispatcher, that provides function implementations behind a single dispatch function.
- Removed ExprNode in lieu of just using a PHP callable with bound variables.
- Removed debug methods from runtimes and instead into a new Debugger class.
- Heavily cleaned up function argument validation.
- Slice syntax is now properly validated (i.e., colons are followed by the appropriate value).
- Lots of code cleanup and performance improvements.
- Added a convenient
JmesPath\search()
function. - IMPORTANT: Relocating the project to https://github.com/jmespath/jmespath.php
- Added support for using ArrayAccess and Countable as arrays and objects.
- Added the ability to search data returned from json_decode() where JSON objects are returned as stdClass objects.