website/content/blog/jq.md
2024-10-06 12:57:11 -04:00

1.4 KiB
Raw Blame History

title date draft tags math medium_enabled
Process JSON in the terminal with jq 2024-10-05T15:59:10-07:00 false
false false

The jq command is great for quickly viewing and manipulating JSON data. By default, the output is formatted is a human-readable way, and they provide an easy way to "filter" or access elements within the JSON data.

For example

echo "{\"firstName\": \"Brandon\", \"lastName\": \"Rozek\"}"  | jq

Outputs

{
  "firstName": "Brandon",
  "lastName": "Rozek"
}

To see what's in the field firstName

echo "{\"firstName\": \"Brandon\", \"lastName\": \"Rozek\"}"  | jq .firstName

Other than quickly viewing JSON objects in the terminal. I have two other use cases for it.

1: Sanitizing Strings

echo $OUTPUT | jq -Rsa .
Flag Description
-R Don´t parse the input as JSON. Instead, each line of text is passed to the filter as a string.
-s Pass the entire input to the filter as a single long string
-a Produce pure ASCII output with every non-ASCII character replaced with the equivalent escape sequence.

2: Stringifying JSON

jq ".|tojson"

From the man pages

The tojson and fromjson builtins dump values as JSON texts or parse JSON texts into values, respectively.