Jq For Mac

The checksums for jq 1. To move it to another Mac, copy it over a local network or place it on a removable drive such as a flash drive or external hard drive that you then connect to another Mac. This time the options -x -v are no longer necessary. Select the disk and hit enter. Otherwise, enjoy your now-fresh Mac! Downloading jquery using yarn or npm: Npm is the package which has registered jquery in it. These npm packages can be installed by making use of npm command on CLI. Npm install jquery. If you do not want to make use of npm package installer, you can also make use of yarn. Yarn add jquery.

  • Limited Time 95% OFF Coupon: Like our content and want to support us more directly? Help Us, Help Yo.
  • Jq 1.5 released, including new datetime, math, and regexp functions, try/catch syntax, array and object destructuring, a streaming parser, and a module system. See installation options on the download page, and the release notes for details. Jq 1.5rc2 is available. Get it on the releases page. 01 January 2015. Jq 1.5rc1 is available.
JSON data are used for various purposes. But JSON data can’t be read easily from JSON file by using bash script like other normal files. jq tool is used to solve this problem. jqJq for mac download command works like sed and awk command, and it uses a domain specific language for working with JSON data. jq is not a built-in command. So, you have to install this command for using it. How you can install and apply jq command for reading or manipulating JSON data is shown in this tutorial.

Run the following command to install jq on Ubuntu.

Reading JSON data

Suppose, you have declared a JSON variable named JsonData in the terminal and run jq command with that variable to print the content of that variable.

$ JsonData='[{'Book':'PHP 7'}, {'Publication':'Apress'},
{'Book':'React 16 Essentials'},{'Publication':'Packt'} ]'

$ echo '${JsonData}' jq '.'

Reading JSON data with –c option

-c option uses with jq command to print each JSON object in each line. After running the following command, each object of JsonData variable will be printed.

Reading a JSON file

jq command can be used for reading JSON file also. Create a JSON file named Students.json with the following content to test the next commands of this tutorial.


'roll': 3,
'name': 'Micheal',
'batch': 29,
'department': 'CSE'
'roll': 55,
'name': 'Lisa',
'batch': 34,
'department': 'BBA'
'roll': 12,
'name': 'John',
'batch': 22,
'department': 'English'

Run the following command to read Students.json file.

Reading JSON file with ‘ ’

You can use ‘ ’ symbol in the following way to read any JSON file.

Reading single key values

You can easily read any particular object from a JSON file by using jq command. In Students.json, there are four objects. These are roll, name, batch, and department. If you want to read the value of department key only from each record then run jq command in the following way.

Reading multiple keys

Jq Binary For Mac

If you want to read two or more object values from JSON data then mention the object names by separating comma (,) in the jq command. The following command will retrieve the values of name and department keys.

Remove key from JSON data

jq command is used not only for reading JSON data but also to display data by removing the particular key. The following command will print all key values of Students.json file by excluding batch key. map and del function are used in jq command to do the task.

Mapping Values

Jq Mac Homebrew

Without deleting the key from JSON data, you can use map function with jq command for various purposes. Numeric values of JSON data can be increased or decreased by map function. Create a JSON file named Number.json with the following content to test the next commands.

Run the following command to add 10 with each object value of Numbers,json.

Run the following command to subtract 10 from each object value of Numbers,json.

Searching values by index and length

You can read objects from JSON file by specifying the particular index and length. Create a JSON file named colors.json with the following data.

Run the following command to read two values starting from the third index of colors.json file.

You can specify the length or starting index to read data from JSON file. In the following example, the number of data value is given only. In this case, the command will read four data from the first index of colors.json.

You can specify the starting point only without any length value in jq command and the value can be positive or negative. If the starting point is positive then the index will count from the left side of the list and starting from zero. If the starting point is negative then the index will count from the right side of the list and starting from one. In the following example, the starting point is -3. So, the last three values from the data will display.

When you will work with JSON data and want to parse or manipulate data according to your requirements then jq command will help you to make your task easier.

Most of the popular API and data services use the JSON data format, so we'll learn how it's used to serialize interesting information, and how to use the jq to parse it at the command-line.

JSON - a lightweight data format

JSON stands for JavaScript Object Notation and is nearly ubiquitous as a data format, for its lightweight nature and (relatively) ease of human-readability.

Using jq

jq is a program described as 'sed for JSON data':

You can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.

Installing jq

If you've haven't installed the pup HTML parsing tool, or any other tool which required you to edit your ~/.bashrc's' PATH and create the ~/bin_compciv directory, then follow the instructions here: Installing programs for your personal Stanford account.

To install jq:

Check out the tutorial on jq here. The full manual can be found here.

JSON compared to CSV

Jq For Mac

JSON is more verbose, but easier to read than CSV.



Objects and attribute-value pairs

Inherent to the JSON data format is the ability to encapsulate data structures known as Objects consisting of attribute-value pairs

The object below has the attributes first_name and last_name, with the values of John and Smith, respectively:

JSON objects can also contain Arrays, which can be thought of as lists of elements. Below, the things_carried attribute has an Array containing apples, hat, and harmonica.

What makes JSON more flexible than flat data structures (such as CSV and other spreadsheet-type formats) is the ability to nest objects and arrays:

Sen. Joni Ernst as a JSON object

Jq For Mac

The unitedstates/congress-legislators Github repo contains a wealth of useful, serialized information about the U.S. Congress. From their current legislators file, I've extracted the entry for newly-elected Senator Joni Ernst and converted it to a JSON, which you can download here.

The formatted output:

Senator Ernst is new to Congress (and the first woman to represent Iowa in Congress), so her JSON-object representation is brief enough for now to read on one page. The object includes 4 nested objects, under the attributes, id, name, bio, terms.

Use jq to view each of these attributes separately, by prepending a dot to the desired attribute:

Nested objects

To access a nested attribute, for example, the first part of the name object, simply list the attributes in sequence:


Think of an array as a list. In JSON, square brackets are used to enclose an array of objects or values. Below, the attribute fruits points to an array of string values, 'apples', 'oranges', 'pears':

In the case of the Congressmember JSON, each member has a terms attribute, pointing to an array of objects that look like this:

Here, we use jq's notation to access Senator Ernst's terms as an attribute: take care to notice the square brackets which denote the array that is contained in terms:

Because Senator Ernst has so far served only one term, there is only one object in the .terms array. However, trying to access the start attribute, using just the dot notation for attributes, will result in an error:

Accessing objects in an array

The individual objects in an array are indexed by number, starting from zero. In other words, if we want to get the start attribute for Senator Ernst's 1st term, we tell jq that we want the 0th element, and we use the square bracket notation when accessing an array, in this case, the terms array.

In the result below, take particular note of the lack of square brackets: by specifying a specific element in terms, we get a single object in return:

Now try to retrieve the start attribute:

Try accessing the 1st element in terms; if Senator Ernst has only served one term, and that term is accessible via the 0th element, think to yourself what the 1st element in the terms array will contain:

Rep. Nancy Pelosi as a JSON object

The terms array for Sen. Ernst is still an array, even with one object. But let's see how an array of multiple objects works: we can use Rep. Nancy Pelosi as an example, as she's been in Congress for multiple terms:

How many terms has Pelosi served, exactly? There may be a specific filter in jq that returns a count, but let's just use the good ol' wc tool and pipe the result of jq into it:

All of Congress

You can continue to practice your JSON selectors. Or just move on to the entire Congress, because what we've learned so far should apply to all Congressmember objects.

With the JSON files for Rep. Pelosi and Sen. Ernst, we were dealing with single Congressmember objects. This legislators.json contains an array of those Congressmember objects. So this query to find the name attribute will fail:

So we have to use the array selector (the []) to access individual objects. To find the name object of the first Congressmember object (again, remember that elements in the array are numbered starting with 0):

Keep playing with jq and check out its manual for more examples. We've just gone over some of the concepts on how JSON is structured. In later exercises, we'll use some of jq's more advanced features.

Testing the Github API

Just another example of JSON data to parse:

Yum Install Jq

Status endpoint

Check out Github's status page, which has some nice visualizations about their current uptime and response speed.

Here's the API and JSON format that is behind that page: status.github.com/api

To get the current status as raw JSON:

Passing it through jq's parser, with the most basic option, will make it look nicer (with colors):

Do some basic selection:

Select both elements:

The jq tool outputs formatted text that looks nice, but often we just need it in a raw form that can be filtered into our other command-line tools – notice how the --raw-output option removes the quotation marks from the output:

Commits endpoint

As per the jq tutorial, you can take a look at what Github records when you push your commits to your compciv repo:

If you're really that interested in Github's API and its other endpoints, check out the documentation here.