DEV Community

Cover image for Exploring the tool ./jq
Stefan Alfbo
Stefan Alfbo

Posted on

Exploring the tool ./jq

I listened to this podcast today, Kodsnack 585 (in Swedish), which discuss the tool jq. The tool has been on my radar for a while, and this episode made me finally to give it a try.

The jq tool is available from the Ubuntu repository and can be installed like this.

sudo apt-get install jq
Enter fullscreen mode Exit fullscreen mode

We are going to use this JSON example from json.org to try out some things with jq, cat data.json, note that the formatting of the file is not perfect on purpose:

{"widget": {
"debug": "on",
"window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
"width": 500,
"height": 500},
    "image": {"src": "Images/Sun.png",
        "name": "sun1",
 "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
 "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}}}
Enter fullscreen mode Exit fullscreen mode

First jq command will be to pretty print the JSON, jq . data.json

pretty print

And to extract a field from the JSON data, you can use this command, jq '.widget.window.title' data.json.

extract field

We can remove a field by using the command, jq 'map(del(.text))' data.json.

remove field

It's possible to list all fields in the file, jq '[.. | objects | keys[]] | unique' data.json.

list all fields

This list can go on forever, the jq tool has many features to explore and I have only scratched a little bit of the surface here. A good starting point to learn more seems to be the Wiki at jq's GitHub repository. The show notes from the podcast Kodsnack has some excellent resources too.

However, now I have the tool on my machine and I can keep trying it out whenever I need to transform or query JSON data.

Happy querying!

API Trace View

How I Cut 22.3 Seconds Off an API Call with Sentry đź‘€

Struggling with slow API calls? Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more