jq for JSON

By  on  

I old enough to remember when we thought XML was going to change the programming world...then JSON saved us from that hell. Parsing and querying JSON data is fundamental task we've all coded for, but sometimes I just want to get some data locally with minimal fuss. I just learned of a really awesome library to do so: jq. Let's have a look at some cool things we can do with jq!

Start by installing jq via a utility like Homebrew:

brew install jq

With Homebrew installed and a local actors.json file, let's go to work on pulling some data!

// Using this JSON file:
// https://raw.githubusercontent.com/algolia/datasets/master/movies/actors.json

// Get the 10th item in an array
cat actors.json | jq '.[10]'
// {
//   "name": "Dwayne Johnson",
//   "rating": 1568,
//   "image_path": "/akweMz59qsSoPUJYe7QpjAc2rQp.jpg",
//   "alternative_name": "The Rock",
//   "objectID": "551486400"
// }

// Get a property from the 10th item in array
// > "Dwayne Johnson"

// Get multiple items
jq '.[10:12]'

// Get items up to the 12th position
jq '.[:12]'

// Get items after the 12th position
jq '.[12:]'

// Get an array of properties from all objects
jq '.[].name'
// > ["William Shatner", "Will Ferrell", ...]

// Create an object with only properties I want
jq '{ name: .[].name, rating: .[].rating}'

// Built in functions!
jq 'sort'
jq 'length'
jq 'reverse'

There are loads of other ways to use jq, so I highly recommend you check out JQ Select Explained: Selecting elements from JSON. I'll keep jq handy for the foreseeable future, as it will be invaluable!

Recent Features

  • By
    39 Shirts – Leaving Mozilla

    In 2001 I had just graduated from a small town high school and headed off to a small town college. I found myself in the quaint computer lab where the substandard computers featured two browsers: Internet Explorer and Mozilla. It was this lab where I fell...

  • By
    Welcome to My New Office

    My first professional web development was at a small print shop where I sat in a windowless cubical all day. I suffered that boxed in environment for almost five years before I was able to find a remote job where I worked from home. The first...

Incredible Demos

  • By
    Select Dropdowns, MooTools, and CSS Print

    I know I've harped on this over and over again but it's important to enhance pages for print. You can do some things using simple CSS but today's post features MooTools and jQuery. We'll be taking the options of a SELECT element and generating...

  • By
    Create WordPress Page Templates with Custom Queries

    One of my main goals with the redesign was to make it easier for visitors to find the information that was most popular on my site. Not to my surprise, posts about MooTools, jQuery, and CSS were at the top of the list. What...

Discussion

    Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!