JSON Toolkit
A zero-dependency Python utility for working with JSON data. Validates, formats, minifies, queries, and inspects JSON files — all with Python's standard library.
Features
- Pretty-print with configurable indentation (2, 4, or any number of spaces)
- Minify JSON to reduce file size for APIs and storage
- Validate JSON and get structural stats (type, key count, size)
- Query nested data with dot-notation paths including array indices
- Sort keys alphabetically for deterministic output and easier diffs
- Stdin support for use in shell pipelines with other tools
Usage Examples
Pretty-print a JSON file:
python main.py data.json
Validate without output:
python main.py config.json --validate
# ✓ Valid JSON
# Type: object (12 keys)
# Size: 4832 bytes
Query a nested value:
python main.py users.json --query data.users.0.name
# "Alice"
Minify for production:
python main.py config.json --minify -o config.min.json
Sort keys for consistent diffs:
python main.py package.json --sort-keys -o package-sorted.json
Pipe from curl:
curl -s https://api.example.com/data | python main.py - --query results.0
Query Syntax
Use dot notation to navigate nested structures. Array indices are numbers:
name— top-level keydata.users— nested object keydata.users.0— first element of an arraydata.users.0.email— field of the first array elementconfig.servers.2.host— deeply nested value
Command Line Options
input— JSON file path, or-for stdin-o, --output— Output file (defaults to stdout)--indent N— Indentation spaces (default: 2)--minify— Output minified JSON (no whitespace)--query PATH/-q PATH— Extract a value at the given dot-notation path--validate— Only validate and print stats, no output--sort-keys— Sort object keys alphabetically--json— (implicit) Output is always valid JSON