| name | json-pipe |
| description | Pipe JSON between shell commands using jq-lite for transformation steps. Use when building shell pipelines that process JSON data through multiple transformation stages. Triggers include "pipe JSON", "shell pipeline JSON", "curl | jql", "transform JSON in pipeline", "chain JSON operations". |
json-pipe
Pattern guide for chaining jql in shell pipelines.
Common Pipeline Patterns
curl -> extract -> use
curl -s https://api.github.com/repos/nodejs/node | jql -r '.stargazers_count'
curl -s https://api.github.com/users/octocat/repos | jql -r '.[].name'
kubectl get secret myapp-env -o json | jql -r '.data.DATABASE_URL' | base64 -d
filter -> format -> save
cat events.json | jql '.events[] | select(.level == "error")' > errors.json
cat users.json | jql --csv '.users' > users.csv
cat config.json | jql --compact '.' > config.min.json
transform -> pipe to next tool
cat users.json | jql -r '.users[] | select(.active) | .email' | xargs -I{} mail -s "Update" {}
docker ps -q | xargs docker inspect | jql -r '.[].Name' | sed 's/^\///'
NDJSON log processing
cat app.log | jql 'select(.level == "error")' | wc -l
cat app.log | jql -r 'select(.level == "error") | .msg'
cat app.log | jql 'select(.level == "error") | .type' | sort | uniq -c | sort -rn
Tips
- Use
-r (raw) when passing string values to other shell commands.
- Use
-c (compact) when storing JSON in shell variables: X=$(cat f.json | jql -c '.field')
- NDJSON (one JSON per line) is processed line by line - safe for large log files.
- Errors go to stderr; safe to pipe stdout to other commands even on parse errors.