gg_json 4.0.1
gg_json: ^4.0.1 copied to clipboard
gg_json offers a bunch of JSON helpers used in various context.
Changelog #
4.0.0 - 2026-07-06 #
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 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
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
4.0.1 - 2026-07-06 #
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