Programming By Stealth

PBS 157 of X — jq: Querying JSON with `jq`

Programming By Stealth

Show Notes

In this week's episode of Programming By Stealth, Bart Busschots continues his instruction on learning more about how to use the jq language to query JSON files. We get into the thick of it as Bart teaches us three important jq concepts: filter chaining, operators, and functions.

To get there we learn about the literal values in JSON and jq and how only null and false are false. Armed with that, Bart explains the `not` function and once we put those concepts together, this ridiculous command will make perfect sense:

`jq -n 'true and true | not' # false`

I got such a kick out of that when I first read it in the shownotes earlier this week that I posted my enjoyment of it on Mastodon, and one of the actual developers of `jq` commented that he was excited to learn we were covering jq in Programming By Stealth!

The `any` and `all` functions are nearly as silly sounding but are equally useful. By the end of the episode, we can successfully query the Nobel Prize JSON file to show us all of the prizes won by anyone with the surname "Curie".

We even have three fun challenges at the end of this episode.

You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

Read an unedited, auto-generated transcript: CCATP_2023_12_09

Join our Slack at podfeet.com/slack and look for the #pbs channel, and check out our pbs-student GitHub Organization. It's by invitation only but all you have to do is ask Allison!

More from Programming By Stealth

Oct 11, 2026

We dust off our memory from where we left off learning about Jekyll back in PBS 181 in June of last year. After some housekeeping, Bart takes us through the challenge solution from PBS 181, and then teaches us how to add metadata to our static sites. After the new material, he sets up where we're going next in learning how to organize our content with Jekyll taxonomies. He even explains what the weird term "information architecture" means in this context.

Sep 26, 2026

In this final episode of Tidbit 19, Bart walks us through the very few libraries he used for the final design of his Linkifier CLI App. His choices on tooling to build nice terminal commands and provide color in the terminal (like red for error messages) were based on simplicity, the fewest dependencies, and active support. It was a very fun episode to record as he wrapped the entire story up in a bow.

Aug 30, 2026

We're back with Part B of Tidbit 19, where Bart walks us through the architecture of his Linkifier module. He starts with the three data modeling classes that he's been using for decades, but explains how hard it is today to extract article headlines. He walks through how he developed an extraction logic but had to do it per domain. That sounds crazy but he uses surprisingly few sites for his articles for Security Bits and Let's Talk Apple.

Aug 11, 2026

In Part A of Tidbit 19, Bart explains the problem he needed to solve, which was bringing a script he's written up into the modern age as a JavaScript command-line interface app that can help navigate the AI landscape. As always, his explanation is geared towards teaching us the fundamentals with his problem as the example.

Jun 28, 2026

One of the things that helps your posts get traction is if you have a nice, pretty card that displays when you post the URL on social media. Plain blue links just don't get clicked. With WordPress and other dynamic Content Management Systems (CMSs), you can get plugins to create the pretty cards. But with Jekyll (and Hugo and other Static Site Generators), you need to build the capability into your theme. It's not hard, you just need to know what metadata to build, and of course, Bart is here to teach it to us.

See all episodes →