Filter JSON objects by a field
Build a paste-ready command, then review its compatibility and effects before running it.
jq -c '.items[] | select(.status == "failed") | {id,status}' data.jsonread-onlyno known side effects Compatibility
LinuxVerified for Linux using posix, bash, zsh syntax.
Operational knowledgereview due 2027-01-20
Requirementsjqjq must be installed and available on PATH.
Version supportjq Current supported releasesVerified for linux using posix, bash, zsh syntax; consult compatibility notes for platform-specific differences.
Expected signals{"id":"job-42","status":"failed"}Representative successful output; values vary with the selected target and system state.
Known errorsjq: command not foundjq is missing or is not available on PATH.
Verifyjq -c '.items[] | select(.status == "failed") | {id,status}' data.jsonThe output matches the expected target and exits without an error.Rollback noteNot required: this command is read-only and does not change system state.
Command breakdown
01jqCommandRuns the jq stage of this one-liner.
02-cOptionConfigures jq with the -c option.
03'.items[] | select(.status == "failed") | {id,status}'ArgumentPasses '.items[] | select(.status == "failed") | {id,status}' to jq.
04data.jsonArgumentPasses data.json to jq.
Example input
jq -c '.items[] | select(.status == "failed") | {id,status}' data.json
Example output
{"id":"job-42","status":"failed"}
{"id":"job-57","status":"failed"}
Illustrative output — exact values vary by system and data.
Official sources