json-tools
JSON Tools
A toolkit for working with JSON data using Python standard library only.
When to Use This Skill
Activate this skill when the user needs to:
- Validate JSON syntax
- Format/pretty-print JSON
- Query JSON with path expressions
- Compare two JSON files
- Transform JSON data
Available Scripts
Always run scripts with --help first to see all available options.
| Script | Purpose |
|---|---|
validate_json.py |
Check if JSON is valid |
format_json.py |
Pretty-print or minify JSON |
query_json.py |
Extract data using path expressions |
diff_json.py |
Compare two JSON files |
Decision Tree
Task → What do you need?
│
├─ Check if JSON is valid?
│ └─ Use: validate_json.py <file>
│
├─ Format/beautify JSON?
│ └─ Use: format_json.py <file>
│
├─ Extract specific data?
│ └─ Use: query_json.py <file> <path>
│
└─ Compare two JSON files?
└─ Use: diff_json.py <file1> <file2>
Quick Examples
Validate JSON:
python scripts/validate_json.py data.json
echo '{"key": "value"}' | python scripts/validate_json.py -
Format JSON:
python scripts/format_json.py data.json
python scripts/format_json.py data.json --indent 4
python scripts/format_json.py data.json --minify
Query JSON:
python scripts/query_json.py data.json "users"
python scripts/query_json.py data.json "users.0.name"
python scripts/query_json.py data.json "config.database.host"
Compare JSON:
python scripts/diff_json.py old.json new.json
python scripts/diff_json.py config1.json config2.json --keys-only
Path Expression Syntax
The query_json.py script uses dot-notation paths:
| Path | Description |
|---|---|
key |
Access object key |
0, 1, 2 |
Access array index |
key.subkey |
Nested access |
items.0.name |
Mixed access |
. or empty |
Root element |
Examples
Given JSON:
{
"users": [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
],
"config": {
"debug": true
}
}
| Path | Result |
|---|---|
users |
The users array |
users.0 |
First user object |
users.0.name |
"Alice" |
users.1.age |
25 |
config.debug |
true |
Input Sources
All scripts accept input from:
- File:
script.py data.json - Stdin:
echo '{}' | script.py - - String:
script.py --string '{"key": "value"}'
Common Use Cases
- Validate API response:
validate_json.py response.json - Pretty-print minified JSON:
format_json.py api_response.json - Extract config value:
query_json.py config.json "database.host" - Find config differences:
diff_json.py prod.json staging.json
Notes
- All scripts use Python standard library only (no external dependencies)
- Unicode is fully supported
- Large files are handled efficiently
- Exit codes: 0 = success, 1 = error/invalid, 2 = differences found (diff)
More from ivanvza/dspy-skills
web-scraper
Web scraping toolkit for extracting content from web pages. Fetch HTML, extract links, parse text content, and download page resources. Use when the user needs to scrape websites, extract data from web pages, gather links, or harvest text content.
19file-utils
File utility toolkit for searching, analyzing, and comparing files. Find files by pattern/size/date, count lines, get file statistics, and compare file contents. Use when working with file discovery, analysis, or comparison tasks.
9pentest-commands
This skill should be used when the user asks to "run pentest commands", "scan with nmap", "use metasploit exploits", "crack passwords with hydra or john", "scan web vulnerabilities with nikto", "enumerate networks", or needs essential penetration testing command references.
7web-fingerprint
Find and fingerprint web servers on a target. Use when asked to "find web servers", "fingerprint a website", "what's running on this web server", "identify web technologies", or "scan for web services".
7network-recon
Perform network reconnaissance including host discovery, port scanning, and service enumeration. Use when asked to "scan a network", "find hosts", "discover devices", "enumerate services", "recon a subnet", or "what's on my network".
6network-check
Network connectivity testing toolkit for checking host reachability, port availability, and DNS resolution. Use when diagnosing network issues, verifying service availability, testing connectivity to servers, or troubleshooting DNS problems.
5