GJSON is a Go library designed for extremely fast, allocation-free retrieval of values from JSON documents. It enables you to query nested JSON structures using one-liner dot-notation or array-based paths and includes wildcard and comparison operators. The library is optimized for speed and zero allocations, benchmarking significantly faster than Go’s standard encoding/json unmarshal approaches. It supports parsing JSON lines (newline-delimited JSON) as an array for large stream processing. GJSON also provides modifiers (such as @reverse, @flatten, @keys) which allow transformation or inspection directly via the path syntax. Because it works on raw bytes or strings, it's suited for high-performance JSON parsing without needing to define Go struct types.
Features
- Path-based retrieval using dot notation and wildcards
- Returns Result objects with typed accessors (String, Int, Bool, etc)
- Support for JSON Lines (multi-line) documents
- Modifiers built into paths for transformations
- Works directly with []byte or string, minimizing allocations
- Iteration over arrays/objects with .ForEach()