Command-line JSON processor for slicing, filtering, mapping and transforming structured data with zero runtime dependencies
jq is a command-line JSON processor that functions as the JSON equivalent of sed, awk, and grep for structured data manipulation. Written in portable C with zero runtime dependencies, it allows users to slice, filter, map, and transform JSON data using a domain-specific language with compact syntax.
The tool operates as a filter that reads JSON input and produces JSON output, making it suitable for shell scripting, data processing pipelines, and API response manipulation. jq supports complex operations including array and object manipulation, conditional logic, mathematical operations, and string processing. Users can extract specific fields, reshape data structures, perform aggregations, and apply transformations across nested JSON structures.
jq targets developers, system administrators, and data engineers who work with JSON APIs, configuration files, or structured data processing. Its statically linkable binary and cross-platform support make it deployable in containerized environments and embedded systems. The tool includes an online playground for testing expressions and comprehensive documentation covering its filtering language syntax and built-in functions.
# via Docker
docker run --rm -i ghcr.io/jqlang/jq:latest
# via Source
git clone && autoreconf -i && ./configure --with-oniguruma=builtin && make -j8 && sudo make install