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.json
Press 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.json
Press 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.json
Filtering 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.json
Transforming 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.json
Learn 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.
Other Learning
- How Do I Learn Effectively?
- Learn 3D Graphics
- Learn Amazon Athena
- Learn Asymptotic Notations
- Learn AWS Amplify
- Learn Color Theory: Complete Guide to Color Theory Basics & Tutorial
- Learn Data Visualization
- Learn Design Systems
- Learn ECS
- Learn GitHub
- Learn How To Prioritize
- Learn Java
- Learn Java Coding Challenges
- Learn JavaScript
- jq Cookbook: Essential JSON Processing Examples & Commands
- Learn Kubernetes
- Learn Neovim
- Learn Python
- Learn Rendanheyi
- SignalFx Tutorial: Complete Guide to Observability & Monitoring
- Learn Software Architecture
- Learn Software Design Patterns
- Structurizr Examples: Software Architecture Diagrams
- Learn systemd
- Learn Terraform
Comments #