jq
Bash, unfortunately, doesn’t ship with a command that can work with JSON natively. In this lesson, we’ll learn how to read and do basic queries on JSON with jq, an installable command line tool that makes working with JSON in bash really easy. We‘ll pipe the JSON output of the Github API to jq to extract values.
Note: jq has to be installed. On macOS, the easiest way to do this is to run brew install jq. To view install instructions for all platforms, see https://stedolan.github.io/jq/download/.
Install
brew install jq
Usage
echo ‘{"foo": 123}‘ | jq ‘.foo‘ ## access foo‘s value, print 123
echo ‘{"a": {"b": 123}}‘ | jq ‘.a.b‘ ## 123
Example
curl -s https://api.github.com/repos/facebook/react | jq ‘.stargazers_count‘
Array
echo ‘[1,2,3]‘ | jq ‘.[]‘
## 1
## 2
## 3
echo ‘[{"id": 1}, {"id": 2}]‘ | jq ‘.[].id‘
## 1
## 2
Example
curl -s https://api.github.com/search/repositories?q=service+worker | jq ‘.items[].name‘