mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-10-30 01:12:07 -04:00
1.4 KiB
1.4 KiB
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
andfromjson
builtins dump values as JSON texts or parse JSON texts into values, respectively.