Quick Start: Need to parse JSON from the command line? This jq cookbook shows you the essential commands and examples for filtering, transforming, and processing JSON data effectively. Master jq tutorial techniques with practical examples.
jq Cookbook: What Will You Learn?
- What is jq?
- What are the use cases for jq?
- How do I parse a remote JSON file with jq?
- How do I parse a local JSON file with jq?
- How do I reformat a local JSON file with jq?
The Basics
The jq command-line JSON parser is a welcome tool in any programmer’s toolbelt. Use jq to parse JSON to simplify collecting essential information from JSON files.
Primary Use Cases
- Parse JSON
- Query JSON
- Reformat parsed JSON
Less Suitable Use Cases
- Parsing raw text and XML
When to Use jq?
Use jq when you need to parse JSON files. jq is a versatile tool that can meet a wide range of JSON parsing needs.
jq Cookbook: Practical Examples
Parse A Remote File
Install curl and install jq.
Run this command to query a specific office name from offices.json. This jq tutorial example demonstrates basic JSON parsing.
curl --silent https://raw.githubusercontent.com/jeffabailey/learn/main/tools/jq/offices.json | jq '.[].name'Parse A Local File
Download offices.json and run these commands in your download folder. This jq cookbook example shows local file processing.
curl --silent https://raw.githubusercontent.com/jeffabailey/learn/main/tools/jq/offices.json > offices.json
jq '.[].name' < offices.jsonPress the green run button to see the output of this command.
Reformat A Local File
I am using the previously downloaded offices.json to run this command. This jq tutorial demonstrates advanced formatting techniques.
jq '.[] | {name,location} | join(" is in ")' < ./offices.jsonPress the green run button to see the output of this command.
The join() function allows for quick formatting.
Try this command for ad-hoc string concatenation.
jq '.[] | .name + " is in " + .location' < ./offices.jsonFiltering JSON Data
Suppose you have a JSON file employees.json and you want to filter out employees who are older than 30 years.
jq '.employees[] | select(.age > 30)' < employees.jsonTransforming JSON Data
If you have a JSON file products.json and you want to create a new JSON array with only the product names and prices.
jq '[.products[] | {name: .name, price: .price}]' < products.jsonLearn jq - Beyond the Basics
References
- jq Cheat Sheet
- JSONPath Online Evaluator
- Guide to Linux jq Command for JSON Processing - Baeldung
- Online Generate Test Data - Generate some JSON files to play with.
- tput documentation - Generates color in bash shells.
- Add Color to Shell Scripts - Take tput further for your use cases.
Related Articles by Category
⌨️ Command Line
Mastering the terminal and command-line interface for powerful, efficient computing.
💻 Development Tools
Tools and utilities that help developers write, test, and deploy code more efficiently.

Comments #