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
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;"
}}}
First jq command will be to pretty print the JSON, jq . data.json
And to extract a field from the JSON data, you can use this command, jq '.widget.window.title' data.json
.
We can remove a field by using the command, jq 'map(del(.text))' data.json
.
It's possible to list all fields in the file, jq '[.. | objects | keys[]] | unique' data.json
.
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!