json_path 0.7.4 copy "json_path: ^0.7.4" to clipboard
json_path: ^0.7.4 copied to clipboard

Implementation of RFC 9535 - JSONPath: Query Expressions for JSON. Reads and writes values in parsed JSON objects using queries like `$.store.book[2].price`.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.7.4 - 2024-08-03 #

Changed #

  • CTS updated

Fixed #

  • Uppercase "E" was not acceptable in floating point numbers
  • A digit before the decimal point was not enforced for floating point numbers
  • Integer literal bounds were not enforced

0.7.3 - 2024-08-01 #

Changed #

  • Updated CTS

Fixed #

0.7.2 - 2024-05-30 #

Added #

  • New functions: key() and index()

0.7.1 - 2024-03-02 #

Changed #

  • Bumped the CTS to the latest

0.7.0 - 2023-12-29 #

Changed #

  • Renamed Nodes to NodeList
  • Bumped the CTS to the latest version

0.6.6 - 2023-09-23 #

Fixed #

  • Logical expressions should be allowed in function arguments

0.6.5 - 2023-09-11 #

Fixed #

  • Certain numbers were not parsed correctly

0.6.4 - 2023-08-26 #

Changed #

  • Bump dependencies versions

0.6.3 - 2023-08-26 #

Fixed #

  • Allow whitespaces after ? in expressions

0.6.2 - 2023-07-21 #

Fixed #

  • Disallow comparison of non-singular queries

0.6.1 - 2023-07-17 #

Fixed #

  • Allow whitespace in between selector segments

0.6.0 - 2023-05-27 #

Changed #

  • Bump SDK version to 3.0.0
  • Disallow whitespace between the function name and the parentheses
  • Disallow whitespace between the expression and the brackets
  • search() and match() now strictly follow the I-Regexp convention. Expressions not conforming to I-Regexp will yield false regardless of the value

0.5.3 - 2023-04-29 [YANKED] #

Changed #

  • search() and match() now strictly follow the I-Regexp convention. Expressions not conforming to I-Regexp will yield false regardless of the value

0.5.2 - 2023-04-05 #

Added #

  • Improved IRegex support

0.5.1 - 2023-03-28 #

Added #

  • Better support for Normalized Paths

0.5.0 - 2023-03-23 #

Added #

  • Full support of some built-in functions: length(), size(), search(), match(), value().
  • Basic support of custom user-defined functions.

Changed #

  • BC-BREAKING! The package is now following the IETF JSON Path spec which means a lot of internal and BC-breaking changes. Please refer to the tests and examples.

Removed #

  • BC-BREAKING! Support of the callback filters has been dropped. Use custom functions instead.

0.4.4 - 2023-03-18 #

Fixed #

  • Reverted changes from 0.4.3 as they caused dependency issues.

0.4.3 - 2023-03-18 #

Fixed #

  • Deprecation warnings from petitparser.

0.4.2 - 2022-08-03 #

Added #

  • Expressions enhancements: float literals, negation, parenthesis.

0.4.1 - 2022-06-14 #

Added #

  • Lower case hex support

Changed #

  • Updated CTS to latest

0.4.0 - 2022-03-21 #

Changed #

  • Dart 2.16
  • Dependency bump: petitparser 5.0.0

0.3.1 - 2021-12-18 #

Added #

  • Filtering expressions

Changed #

  • Require dart 2.15

0.3.0 - 2021-02-18 #

Added #

  • JsonPathMatch.context contains the matching context. It is intended to be used in named filters.
  • JsonPathMatch.parent contains the parent match.
  • JsonPathMatch.pointer contains the RFC 6901 JSON Pointer to the match.
  • Very basic support for evaluated expressions

Changed #

  • Named filters argument renamed from filter to filters
  • Named filters can now be passed to the read() method.
  • Named filters callback now accepts the entire JsonPathMatch object, not just the value.

Removed #

  • The set() method. Use the pointer property instead.

0.2.0 - 2020-09-07 #

Added #

  • Ability to create arrays and set adjacent indices

Changed #

  • List union sorts the keys

Fixed #

  • Improved union parsing stability

0.1.2 - 2020-09-06 #

Changed #

  • When JsonPath.set() is called on a path with non-existing property, the property will be created. Previously, no modification would be made and no errors/exceptions thrown.
  • When JsonPath.set() is called on a path with non-existing index, a RangeError will be thrown. Previously, no modification would be made and no errors/exceptions thrown.

0.1.1 - 2020-09-05 #

Fixed #

  • Fixed example code in the readme

0.1.0 - 2020-09-05 #

Added #

  • JsonPath.set() method to alter the JSON object in a non-destructive way

Changed #

  • BREAKING! Result renamed to JsonPathMatch
  • BREAKING! JsonPath.filter() renamed to read()

0.0.2 - 2020-09-01 #

Fixed #

  • Last element of array would not get selected (regression #1)

0.0.1 - 2020-08-03 #

Added #

  • Filters

0.0.0+dev.7 - 2020-08-02 #

Changed #

  • Tokenized and AST refactoring

0.0.0+dev.6 - 2020-08-01 #

Added #

  • Unions

0.0.0+dev.5 - 2020-07-31 #

Added #

  • Slice expression

0.0.0+dev.4 - 2020-07-29 #

Added #

  • Bracket field notation support

0.0.0+dev.3 - 2020-07-28 #

Added #

  • Partial implementation of bracket field notation

0.0.0+dev.2 - 2020-07-28 #

Added #

  • Recursive selector
  • Wildcard selector

0.0.0+dev.1 - 2020-07-27 #

Added #

  • Tokenizer and AST
  • All-in-array selector

0.0.0+dev.0 - 2020-07-24 #

Added #

  • Basic design draft
107
likes
160
pub points
100%
popularity

Publisher

verified publisherkarapetov.com

Implementation of RFC 9535 - JSONPath: Query Expressions for JSON. Reads and writes values in parsed JSON objects using queries like `$.store.book[2].price`.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

MIT (license)

Dependencies

iregexp, maybe_just_nothing, petitparser, rfc_6901

More

Packages that depend on json_path