Jq is like 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. Jq is written in portable C, and it has zero runtime dependencies. Dash is an API Documentation Browser and Code Snippet Manager. Dash searches offline documentation of 200+ APIs and stores snippets of code. You can also generate your own documentation sets. Download jq jq is written in C and has no runtime dependencies, so it should be possible to build it for nearly any platform. Prebuilt binaries are available for Linux, OS X and Windows. The binaries should just run, but on OS X and Linux you may need to make them executable first using chmod +x jq. Install jq on Mac OSX. June 23, 2017 November 28, 2020 Amber. App name: jq; App description: Lightweight and flexible command-line JSON processor.
Extract data from APIs in Bash scripts
The jq utility is like the sed Linux utility, but for JSON. They both reformat and transform text.
The “j” in the jq program name means it queries a JSON-formatted file to produce filtered output.
On a Mac, command brew install jq reveals that the utility has a dependency of the oniguruma regular expression handler and is from Stephen Dolan’s stedolan.github.io/jq
Install
On Mac:
- brew install jq
On Ubuntu:
- apt-get install jq
On Windows Git Bash, download jq-win64.exe from github.com/stedolan/jq/releases into a bin folder in the PATH, and specify the program in commands:
- echo '{'foo': 0}' | ./jq-win64.exe .
How to jq
https://stedolan.github.io/jq/manualpresents a large (and potentially confusing) list of options.
Here’s an abridged version with examples explained step-by-step.
The ipinfo.io website returns the IP address and its metadata: location Lattitude and Longitude, postal (ZIP code), Unix time zone, carrier (org), State of the Union (region), etc.
curl ipinfo.io
yields:
NOTE: All JSON responses begin and end with curly braces between { and }.
A dot represents the entire input, but formatted with indents:
curl ipinfo.io | jq ‘.’
.[] returns each element of the array, one at a time,
curl ipinfo.io | jq ‘.[]’
If you only want one city name (with no JSON braces or quote marks):
curl ipinfo.io | jq -r .city
NOTE: jq receives a file piped in, as specified by the pipe character . To return the response in a variable within a Bash script:
CITY=$( curl ipinfo.io | jq -r .city )
Jq Tool For Mac Download
More at:
- https://thoughtbot.com/blog/jq-is-sed-for-json
- https://shapeshed.com/jq-json/
### GitHub API
https://stedolan.github.io/jq/tutorial/
### Docker Hub API
Docker Hub provides an API to access public Docker images.
curl ‘https://registry.hub.docker.com/v2/repositories/library/debian/tags/’
Jq Tool For Mac Free
The response starts with:
In JSON, a left bracket ([) begin a list structure:
“results”: [{“name”: “unstable-slim”,:
Note that “name” is an attribute, so would require double-quotes. ???
To return a list of just values beginning with “unstable-slim”:
curl ‘https://registry.hub.docker.com/v2/repositories/library/debian/tags/’|jq ‘.”results”[][“name”]’
???
To list the first element from the root (counting from zero):
jq ‘.[0]’
More on API Microservices
This is one of a series:
Please enable JavaScript to view the comments powered by Disqus.