gg_json 4.2.0
gg_json: ^4.2.0 copied to clipboard
gg_json offers a bunch of JSON helpers used in various context.
Changelog #
4.2.0 - 2026-08-25 #
4.1.0 - 2026-08-13 #
Fixed #
- Cleanup copy right headers. Update to dart 3.13. Auto fixes.
- Cleanup copy right headers. Update to dart 3.13. Auto fixes. Setup quick-check pipeline.
4.0.1 - 2026-07-06 #
4.0.0 - 2026-07-06 #
Breaking changes #
VisitPropuses positional parameters now: migratejson.visit(({key, value, parent, ancestors}) {...})tojson.visit((key, value, parent, ancestors) {...})visit'sancestorsargument is a live, read-only view that is only valid during the callback; copy it withList.of(ancestors)if you retain it- Path strings are validated eagerly when first compiled: an invalid segment
anywhere in a path throws
Invalid path segment ...even if the walk would previously have failed earlier with a missing-path error or returned null
Changed #
- Major performance rewrite across the whole package
set/get/getOrNull/removeValue: paths are compiled once and cached per isolate; traversal is a tight, allocation-free loop (2.6–4.5x faster)visit: the quadratic per-node ancestors allocation is gone; one reused ancestor stack per traversal (26x faster at depth 1000, ~400x at depth 5000)ls: shared path buffer instead of per-node string interpolation (~3x faster)deepCopy: bulk map cloning with nested patching (~2x faster)deeplEquals: lockstep iteration without per-entry allocation (~20% faster)- Added
JsonPathSegmentandcompileJsonPathfor pre-compiled paths - Added a benchmark suite under
benchmark/ - BREAKING CHANGE: Performance optimization by claude
3.1.2 - 2026-07-05 #
Changed #
- Improve performance: path parsing without regular expressions, allocation-free path traversal in set/get, faster ls and deepEquals
3.0.7 - 2026-02-04 #
3.0.5 - 2026-01-30 #
Changed #
- Print paths when wrong path is given
- Print all paths when a path is not found