mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-11-28 18:13:35 -05:00
New post
This commit is contained in:
parent
f8e8f107de
commit
65d1a4dec0
1 changed files with 56 additions and 0 deletions
56
content/blog/jq.md
Normal file
56
content/blog/jq.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
title: "Process JSON in the terminal with jq"
|
||||||
|
date: 2024-10-05T15:59:10-07:00
|
||||||
|
draft: false
|
||||||
|
tags: []
|
||||||
|
math: false
|
||||||
|
medium_enabled: 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "{\"firstName\": \"Brandon\", \"lastName\": \"Rozek\"}" | jq
|
||||||
|
```
|
||||||
|
|
||||||
|
Outputs
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"firstName": "Brandon",
|
||||||
|
"lastName": "Rozek"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To see what's in the field `firstName`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
jq ".|tojson"
|
||||||
|
```
|
||||||
|
|
||||||
|
From the man pages
|
||||||
|
|
||||||
|
> The `tojson` and `fromjson` builtins dump values as JSON texts or parse JSON texts into values, respectively.
|
||||||
|
|
Loading…
Reference in a new issue