unstale

pypi / jsonpath-ng

jsonpath-ng

What changed in jsonpath-ng 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.

8 breaking1 deprecations1 performance2 behavior and defaults1 tooling4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

jsonpath-ng 117 changes

Breaking changes 8

  • Filtering by array index ignores out-of-range indices and non-array values, and queries selecting several indices remove exactly the selected elements.

    1.12.0release notes

  • Inside a filter, $ now resolves to the root node instead of acting as an alias for @, which refers to the element being tested.

    1.12.0release notes

  • An index applied to a string or scalar now matches nothing, rather than finding characters or raising TypeError.

    1.11.0release notes

  • Slices now find nothing unless applied to an array.

    1.11.0release notes

  • The wildcard no longer coerces scalars or objects into arrays; it finds object member values and array elements, and nothing from a scalar.

    1.11.0release notes

  • When used as a field, the wildcard now finds array elements as well as object member values; update() and filter() also act on those array elements.

    1.11.0release notes

  • Booleans are no longer treated as numbers: a boolean is never equal to a number.

    1.11.0release notes

  • Filters can compare against JSON null; unquoted null no longer matches the string "null", and comparisons with null no longer raise TypeError for relational operators.

    1.11.0release notes

Deprecations 1

  • Instantiating Filter with no expressions is deprecated and will raise an exception in version 2.0.0.

    1.10.1release notes

Performance 1

  • Runtimes now scale linearly with the depth of the data.

    1.11.0release notes

Behavior and default changes 2

  • Filter comparisons can now use a query on the right-hand side, starting with @ or $ and containing only name and index segments.

    1.12.0release notes

  • The extended parser now allows true and false as field names while continuing to treat them as boolean literals on the right-hand side of filter comparisons.

    1.11.0release notes

Tooling 1

  • Type annotations were added to many JSONPath interfaces.

    1.12.0release notes

Fixes and other changes 4

  • Index updates are skipped for non-list inputs and out-of-range array indices.

    1.12.0release notes

  • A filter following `..` now parses and selects every matching array element or object member value at any depth.

    1.11.0release notes

  • Paths using `..` no longer raise RecursionError when applied to deeply nested data, though very long JSONPath expressions can still raise it.

    1.11.0release notes

  • Fixes a TypeError crash that can occur when filtering scalar values with a Filter instantiated without expressions.

    1.10.1release notes