jq Command
JSON Query command for filtering data out of a JSON Object, file, or URL. jq is a query language built specifically for interacting with JSON type data. More information can be found at https://jmespath.org/ as well as an online version to test your query Pass or pipe the text to process or a filename
Using jq with a file
Using jq with a URL
Using jq with inline json
Special Keys / Expressions
@
- Current Node (eg. current number/string/array/object) used to evaluate or check value
&
- Expression (Function or Keyname) (eg. &to_number() or &keyname)
!
- NOT Expression
&&
- AND expression
||
- OR expression
{'ab':true}
- Literal Expressions (this will be converted to json)
'foo'
- Raw String Literals not evaluated (Single Quotes)
Available Functions
Generic Functions
length, reverse, type, not_null
Conversion Functions
to_list, to_array, to_string, to_number
String / Number Functions
abs
, ceil
, floor
Boolean Checks
ends_with
, starts_with
, contains
All functions can be used in other functions with the "&" operator.
A common example would be getting a person with the highest or lowest networth max_by(people, &abs(net_worth))
Array Functions
avg: ( ARR )
- convert array of number to average (ex. [1,2,3] -> 2)
first: ( ARR/STR )
- convenient method to get the first item
group_by: ( ARR )
- Splits a collection into sets
join: ( ARR, STR )
- concatenate an array of strings/numbers with a provided delimiter to a string
last: ( ARR/STR )
- convenient method to get the last item
matches: ( STR/ARR, searchTerm )
- regex match string
min: ( ARR )
- get the minimum string/number/dates of an array (ex. [1,2,3] -> 1)
max: ( ARR )
- get the maximum string/number/dates of an array (ex. [1,2,3] -> 3)
reverse: ( STR/ARR )
- returns a reversal of a string or array
sum: ( ARR )
- convert array of number to sum (ex. [1,2,3] -> 6)
sort: ( STR_ARR/NUM_ARR )
- sorts an array of strings/numbers/dates
split: ( ARR/STR, STR )
- splits strings into arrays
unique/uniq: ( ARR )
- remove duplicates
Struct or Array of Structs functions
defaults: ( OBJ/ARR, OBJ )
- sets default values if missing on 1 or more structs
key_contains ( OBJ, &KeyName )
- boolean check if struct contains key name
from_entries ( OBJ/ARR )
- converts a {type:orange}
-> {key: type, value:orange}
keys: ( OBJ/ARR )
- returns an array of keys
max_by: ( ARR,Function/Key )
- same as min but targets a key inside the array and returns a single struct
merge: ( OBJ/ARR, ...)
- Merges objects into one single object with overwrite
min_by: ( ARR,Function/Key )
- same as max but targets a key inside the array and returns a single struct
omit ( OBJ/ARR, STR/ARR )
- loops over 1+ struct and excludes keys provided to_pairs: ( OBJ/ARR )
- converts a {type:orange}
-> [[type, orange]]
pluck ( OBJ/ARR, STR/ARR )
- loops over 1+ struct and only includes keys provided
sort_by: ( ARR, Function/Key )
- same as sort but targets a key inside the array and returns the entire array
to_entries ( OBJ/ARR )
- converts a {type:orange}
-> {key: type, value:orange}
values: ( OBJ/ARR )
- returns an array of values
map: ( Function/Key, ARR )
-