jq

A JSON processor that uses a domain-specific language (DSL). More information: https://jqlang.github.io/jq/manual/.

  • Execute a specific expression only using the jq binary (print a colored and formatted JSON output):

jq '.' /path/to/file.json

  • Execute a specific script:

cat path/to/file.json | jq --from-file path/to/script.jq

  • Pass specific arguments:

cat path/to/file.json | jq –arg "name1" "value1" –arg "name2" "value2" … '. + $ARGS.named'

  • Create new JSON object via old JSON objects from multiple files:

cat path/to/multiple_json_file_*.json | jq '{newKey1: .key1, newKey2: .key2.nestedKey, …}'

  • Print specific array items:

cat path/to/file.json | jq '.[index1], .[index2], …'

  • Print all array/object values:

cat path/to/file.json | jq '.[]'

  • Print objects with 2-condition filter in array:

cat path/to/file.json | jq '.[] | select((.key1=="value1") and .key2=="value2")'

  • Add/remove specific keys:

cat path/to/file.json | jq '. +|- {"key1": "value1", "key2": "value2", …}'