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, first, join, last, matches, min, max, reverse, sum, sort, split, unique/uniq
Struct or Array of Structs functions
defaults, from_entries, group_by, key_contains, keys, map, max_by, merge, min_by, omit, pluck, sort_by, to_entries, values
Last updated
Was this helpful?