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.

Practical jq Examples

Parse A Remote File

Install curl and install jq.

Run this command to query a specific office name from offices.json.

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.

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.

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


Other Learning