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
# basic.json
"a": {
"b": {
"c": {
"d": "value"
}
}
},
"dan": [1,2,3,4,5,6,7,8],
"ban": "bar",
"cat": "baz"
}> jq "basic.json" "a"
=> "a": {
"b": {
"c": {
"d": "value"
}
}
}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 ) -
Was this helpful?