node-jq is a wrapper for jq - a lightweight and flexible command-line JSON processor.
Installation
npm install node-jq --save
Usage
jq example
Usually in your CLI with jq
you would run:
jq ".abilities[].moves" bulbasaur.json
and you would get
node-jq equivalent
With node-jq
you could run it programmatically and interact with the output as a JavaScript Object:
const jq = const filter = '.abilities[].moves'const jsonPath = '/path/to/bulbasaur.json'const options = {} jq
Options
input
Description | List | Default |
---|---|---|
Specify the type of input | 'file' , 'json' , 'string' |
'file' |
input: 'file'
Run the jq query against a JSON file.
jq// {// "foo": "bar"// }
input: 'json'
Run the jq query against an Object.
jq// {// "foo": "bar"// }
input: 'string'
Run the jq query against a String.
jq// {// "foo": "bar"// }
output
Description | List | Default |
---|---|---|
Specify the type of output | 'pretty' , 'json' , 'string' |
'pretty' |
output: 'pretty'
Return the output as a String.
jq// {// "foo": "bar"// }
output: 'json'
Return the output as an Object.
jq// { foo: 'bar' }
output: 'string'
Return the output as a String.
jq// {"foo":"bar"}
Projects using node-jq
- atom-jq: an Atom package for manipulating JSON
- json-splora: an Electron implementation for manipulating JSON
Why?
Why would you want to manipulate JavaScript Objects with jq
syntax in a node app, when there are tools like lodash?
The idea was to port jq
in node to be able to run it as-is. node-jq
doesn't try to replace Object
filters, maps, or transformations.
Our primary goal was to make jq
syntax available in Atom with atom-jq.
Other than that, jq
is an interesting CLI tool to quickly parse the response of an API, such as:
curl 'https://jsonplaceholder.typicode.com/comments' | jq '.[].postId'
There are also people dealing with complex responses:
- ilya-sher.org/2016/05/11/most-jq-you-will-ever-need
- cloudadvantage.com.au/new-aws-command-line-tool-and-jq
jq
?
Want to learn Seems hard to learn, but it really isn't.
jq
is like sed
for JSON
. Slice, filter, map and transform structured data in a simple and powerful way.
Take a look at this great introduction or a jq lesson.
You can check out the official manual and fiddle around in the online playground jqplay.org.