Bash JSON Viewer — jless & JQ_COLORS

·Platform Engineer·ZkontrolovánoNadia Okonkwo·Publikováno

Používejte bezplatný JSON Pretty Print přímo v prohlížeči — bez instalace.

Vyzkoušet JSON Pretty Print online →

Když potřebujete prohlížeč JSON v bash pro interaktivní průzkum místo skriptování, standardní jq . nestačí — výstup se odscrolluje přes horní část terminálu a nelze se vrátit k 300řádkové odpovědi API. Tento průvodce pokrývá nástroje vytvořené speciálně pro interaktivní prohlížení JSON v terminálu: jless (sbalitelný strom s vim-navigací), JQ_COLORS pro vlastní barevná schémata, jq -C | less -R pro obarvené stránkování, shellové aliasy pro každodenní použití a fx jako alternativu Node.js. Pro skriptování, CI/CD a validační pracovní postupy viz doprovodný průvodce formátováním JSON v Bash. Pro prohlížení v prohlížeči bez instalace nástroj JSON Pretty Print funguje okamžitě. Příklady jsou testovány na Bash 5.x (macOS přes Homebrew, Ubuntu 22.04+) a jsou kompatibilní s Bash 3.2+ (systémový shell macOS).

KLÍČOVÉ POZNATKY
  • jless — nejlepší interaktivní prohlížeč JSON pro terminál: sbalitelný strom, vim-klávesy, inkrementální vyhledávání
  • jq -C . | less -R — obarvený scrollovatelný pager bez další instalace nad rámec jq
  • JQ_COLORS — proměnná prostředí přizpůsobující ANSI barevné schéma jq pro každý typ JSON
  • fx — interaktivní prohlížeč JSON na Node.js s podporou myši a JavaScript výrazy
  • alias jv='jless' — jednoslovný příkaz z interaktivního prohlížení dělá zvyk

Interaktivní vs. Skriptové prohlížení JSON

Přesměrování JSON do jq . je správná volba, když chcete formátovaný výstup pro malý datový blok nebo když výsledek jde do dalšího příkazu. Je to špatná volba, když potřebujete zkoumat odpověď API se 200 poli — výstup proletí oknem terminálu a nenechá vás navigovat, sbalovat sekce ani hledat konkrétní pole bez opětovného spuštění příkazu s filtrem. Interaktivní prohlížeče JSON vykreslují stejný formátovaný, obarvený výstup uvnitř trvalého pageru, kde ovládáte navigaci. Data jsou identická; rozdíl je v rozhraní.

Before · Bash
After · Bash
# jq . — výstup se odscrolluje pro velké odpovědi
curl -s https://api.github.com/users/torvalds | jq .
# 300+ řádků proletí — kontext okamžitě ztratíte
# jless — otevře interaktivní pager, nic se neodscrolluje
curl -s https://api.github.com/users/torvalds | jless
# Celý dokument viditelný, sbalitelný, prohledávatelný s j/k/h/l
Poznámka:Interaktivní prohlížeče jsou pouze pro lidskou inspekci — nikdy by neměly být ve skriptech, CI pipeline nebo automatizaci. Pro programové zpracování JSON použijte jq s explicitními filtry a obsluhou návratových kódů. Skriptovací vzory pokrývá průvodce formátováním JSON v Bash.

jless — Interaktivní prohlížeč JSON

jless je specializovaný terminálový prohlížeč JSON. Na rozdíl od pouhého roury přes jq vykresluje dokument jako trvalý sbalitelný strom: každý objekt a pole lze nezávisle rozbalit nebo sbalit pomocí l a h, navigace používá vim-klávesy a inkrementální vyhledávání okamžitě najde jakýkoli klíč nebo hodnotu. Vstup streamuje postupně, takže otevírá velké soubory a odpovědi API za méně než sekundu bez ohledu na velikost — kde jq bufferuje celý dokument před zobrazením. Po jless sahám jako po prvním nástroji vždy, když je odpověď API příliš velká pro rychlý pohled.

Instalace

Bash
# macOS
brew install jless

# Linux — předpřipravený binární soubor z GitHub Releases
curl -sL https://github.com/PaulJuliusMartinez/jless/releases/latest/download/jless-x86_64-unknown-linux-gnu.tar.gz \
  | tar xz
sudo mv jless /usr/local/bin/

# Ověření
jless --version

Základní použití

Bash
# Otevřete lokální soubor — interaktivní prohlížeč se spustí okamžitě
jless api-response.json

# Přesměrujte jakýkoli JSON stream přímo do jless
curl -s https://api.github.com/users/torvalds | jless

# Otevřete se všemi uzly sbalenými na nejvyšší úroveň (užitečný výchozí bod pro velké dokumenty)
jless --mode line api-response.json

# Načtěte konkrétní prvek pole a prohlédněte si ho samostatně
jq '.[0]' deployments.json | jless

Navigace a vyhledávání v praxi

Bash
# Uvnitř jless:
#
#   j / ↓        dolů
#   k / ↑        nahoru
#   l / →        rozbalit uzel (nebo Enter)
#   h / ←        sbalit uzel
#   H            sbalit aktuální + všechny sousední → přehled nejvyšší úrovně
#   L            rekurzivně rozbalit vše
#
#   /            spustit vyhledávání dopředu — napište název klíče a stiskněte Enter
#   n / N        další / předchozí shoda
#
#   g / gg       přejít na začátek
#   G            přejít na konec
#   q            ukončit

Přehled klávesových zkratek jless

Všechny zkratky jsou dostupné ihned po otevření jless — není potřeba žádná konfigurace. Navigační model je záměrně identický s vim, aby se přenesla stávající svalová paměť.

Klávesa
Akce
Kdy použít
j / ↓
Posunout kurzor o řádek dolů
Procházení klíčů objektu nebo prvků pole
k / ↑
Posunout kurzor o řádek nahoru
Návrat na předchozí pole
J
Posunout o 5 řádků dolů
Rychlé posouvání dlouhých polí
K
Posunout o 5 řádků nahoru
Rychlá navigace nahoru
h / ← / -
Sbalit aktuální uzel
Skrytí velkého vnořeného objektu
l / → / +
Rozbalit aktuální uzel
Otevření sbaleného objektu nebo pole
H
Sbalit aktuální uzel i všechny sousední
Přehled struktury nejvyšší úrovně
L
Rekurzivně rozbalit všechny uzly
Odhalení plné hloubky vnořené struktury
g
Přejít na začátek dokumentu
Rychlý návrat ke kořenu
G
Přejít na konec dokumentu
Skok na poslední prvek velkého pole
/
Spustit vyhledávání dopředu
Nalezení konkrétního klíče nebo hodnoty
?
Spustit vyhledávání dozadu
Hledání nahoru od aktuální pozice
n
Přejít na další shodu
Procházení všech výskytů hledaného výrazu
N
Přejít na předchozí shodu
Krokování zpět výsledky hledání
q
Ukončit jless
Ukončení po dokončení prohlídky

jq -C | less -R — Obarvené stránkování bez dalších nástrojů

Pokud jless není nainstalován a potřebujete scrollovatelný, obarvený pohled na JSON odpověď, jq -C . | less -R je solidní záloha. Přepínač -C vynucuje ANSI barevné kódy i když je stdout roura (normálně jq je odstraňuje) a -R říká less, aby tyto kódy interpretoval místo tisknutí jako doslovný text. Výsledkem je plně obarvený, scrollovatelný dokument — bez interaktivní stromové struktury jless. Navigace uvnitř less používá šipkové klávesy nebo vim-style j/ka / spustí vestavěné textové hledání less.

Bash
# Základní obarvený pager
jq -C . response.json | less -R

# Z curl odpovědi — -s zabrání zobrazení progress baru ve streamu JSON
curl -s https://api.github.com/repos/jqlang/jq | jq -C . | less -R

# Seřaďte klíče pro snazší vizuální procházení, pak stránkujte
jq -CS . config.json | less -R
# -C = vynutit barvy, -S = seřadit klíče (oba přepínače dohromady)

# Přidejte alias, abyste nemuseli pokaždé psát celou rouru
alias jqv='jq -C . | less -R'
# Použití: cat response.json | jqv
#    nebo: curl -s https://api.example.com/status | jqv
Poznámka:jq -C | less -R bufferuje celý formátovaný výstup před tím, než less může cokoliv zobrazit. Na souboru 200 MB to znamená čekání několika sekund a spotřebu značné paměti — stejné omezení jako u prostého jq .. Pro velké soubory použijte jless, který streamuje postupně.

JQ_COLORS — Vlastní barevná schémata

JQ_COLORS je proměnná prostředí přepisující výchozí ANSI barevné schéma jq. Přijímá řetězec sedmi kódů attribute;color oddělených dvojtečkami, jeden pro každý typ JSON v tomto pevném pořadí: null : false : true : čísla : řetězce : pole : objekty. Každý kód je ve formátu atribut;barva, kde atribut je 0 (normální), 1 (tučné), 2 (ztlumené) nebo 4 (podtržené) a barva je standardní číslo ANSI (30–37 = standardní, 90–97 = jasné).

Bash
# Reference ANSI barev pro sestavení JQ_COLORS:
#   Atributy:  0=normální  1=tučné  2=ztlumené  4=podtržené
#   Barvy:     30=černá  31=červená  32=zelená  33=žlutá
#              34=modrá  35=magenta  36=azurová  37=bílá
#   Jasné:     90=jasně-černá  91=jasně-červená  92=jasně-zelená  93=jasně-žlutá
#              94=jasně-modrá  95=jasná-magenta  96=jasně-azurová  97=jasně-bílá
#
# Pořadí: null : false : true : čísla : řetězce : pole : objekty

# Vysoký kontrast pro tmavé terminály (doporučeno)
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=tmavě-šedá, false=jasně-červená, true=jasně-zelená,
# numbers=jasně-žlutá, strings=zelená, arrays=tučně-azurová, objects=tučně-azurová

# Motiv ve stylu Solarized
export JQ_COLORS="2;37:0;35:0;35:0;36:0;33:1;34:1;34"
# null=ztlumené-bílá, false=magenta, true=magenta,
# numbers=azurová, strings=žlutá, arrays=tučně-modrá, objects=tučně-modrá

# Minimální (pouze tučné klíče, vše ostatní normální)
export JQ_COLORS="0;90:0;39:0;39:0;39:0;39:1;39:1;39"
Bash
# Přidejte zvolený motiv do ~/.bashrc nebo ~/.zshrc pro použití při každém volání jq
echo 'export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"' >> ~/.bashrc
source ~/.bashrc

# Otestujte motiv
echo '{"active":true,"errors":null,"count":42,"tags":["api","v2"],"meta":{"version":"1.0"}}' | jq .
Upozornění:JQ_COLORS musí mít přesně sedm hodnot oddělených dvojtečkami. Pokud má řetězec méně segmentů, jq tiše přejde na vestavěné výchozí hodnoty bez jakékoliv chybové zprávy — díky čemuž je špatná konfigurace obtížně diagnostikovatelná. Vždy otestujte nový barevný řetězec na krátkém JSON datovém bloku před přidáním do profilu shellu.

Shellové aliasy pro každodenní prohlížení JSON

Příkazy pro interaktivní prohlížení JSON jsou ve výchozím nastavení upovídané. Malá sada aliasů v ~/.bashrc nebo ~/.zshrc z jless a obarveného stránkování dělá jednoslovné příkazy, které přirozeně zapadají do jakéhokoliv pracovního postupu. Aliasy níže se skládají — jv a jvp přijímají jak vstup z roury, tak název souboru jako první argument.

Bash
# Přidejte do ~/.bashrc nebo ~/.zshrc

# jv — interaktivní prohlížeč (jless pokud dostupný, obarvený pager jako záloha)
jv() {
  if command -v jless &>/dev/null; then
    jless "$@"
  else
    jq -C . "$@" | less -R
  fi
}

# jvp — prohlížení s klíči seřazenými abecedně (užitečné pro porovnávání odpovědí)
alias jvp='jq -CS . | less -R'

# jvc — prohlížení ze schránky (macOS)
alias jvc='pbpaste | jless'

# jvf — prohlížení s filtrem: jvf '.users[0]' response.json
jvf() {
  local filter="$1"; shift
  jq -C "$filter" "$@" | less -R
}

# Načtení bez restartu terminálu
source ~/.bashrc
Bash
# Příklady použití po přidání aliasů

# Prohlédnutí libovolného souboru nebo odpovědi z roury
jv deployment-config.json
curl -s https://api.github.com/users/torvalds | jv

# Prohlédnutí seřazené (snadno prohledatelné abecedně)
cat feature-flags.json | jvp

# Prozkoumání subdokumentu interaktivně
jvf '.database' infra/app-config.json
jvf '.users[] | select(.role == "admin")' users.json

bat — Prohlížení JSON souborů se zvýrazněním syntaxe

bat je náhrada za cat se zvýrazněním syntaxe, čísly řádků a vestavěným pagerem. Pro JSON soubory na disku poskytuje čisté, editorové čtení bez otevírání plnohodnotného textového editoru. Na rozdíl od jless bat vykresluje soubor jako statický text — žádné sbalování, žádné vyhledávání, žádná navigace mimo scrollování. Jeho silou je vizuální přehlednost pro statické soubory středně velkých rozměrů (konfigurace, fixtures, testové datové bloky), kde chcete zvýraznění syntaxe a čísla řádků, ale nepotřebujete interaktivní stromovou navigaci.

Bash
# macOS
brew install bat

# Debian / Ubuntu (binární soubor může být pojmenován batcat)
apt-get install -y bat
# alias bat=batcat   # přidejte do ~/.bashrc pokud je potřeba na Ubuntu

# Prohlédněte JSON soubor se zvýrazněním syntaxe a čísly řádků
bat config/feature-flags.json

# Vypněte pager — tiskněte přímo do terminálu (užitečné ve skriptech)
bat --paging=never api-response.json

# Kombinujte s jq: formátujte přes jq, prohlédněte přes bat (zachovává zvýraznění JSON)
jq '.' response.json | bat --language=json --paging=never
Poznámka:Používejte bat pro čtení statických konfiguračních souborů a testovacích fixtures, kde záleží na číslech řádků (např. když selhání testu odkazuje na řádek 47 souboru fixture). Pro API odpovědi a dynamický JSON z curl je jless rychlejší na otevření a praktičtější pro navigaci. Pokud potřebujete prohlédnout v prohlížeči a sdílet s kolegou, vložte přímo do nástroje JSON Pretty Print — terminál není potřeba.

fx — Interaktivní průzkumník JSON na Node.js

fx je interaktivní prohlížeč JSON postavený na Node.js. Jeho rozhraní je podobné jless — sbalitelný strom, klávesová navigace, vyhledávání — ale přidává dvě funkce, které jless postrádá: podpora myši (kliknutím rozbalíte/sbalíte uzly) a možnost zadat JavaScript výraz ve spodním řádku pro filtrování dokumentu v reálném čase. Pro týmy již provozující Node.js je fx přirozenou volbou a nevyžaduje samostatný binární soubor. V čistých terminálových prostředích bez Node je jless lehčí volbou.

Bash
# Globální instalace přes npm
npm install -g fx

# Nebo spuštění bez instalace (npx cachuje balíček)
curl -s https://api.github.com/users/torvalds | npx fx

# Základní interaktivní použití
fx api-response.json
curl -s https://api.github.com/repos/jqlang/jq | fx

# Ve fx: šipkové klávesy pro navigaci, Enter rozbalí/sbalí, / vyhledává
# Spodní řádek přijímá JavaScript výrazy pro živé filtrování:
#   .name           → ukáže pouze pole "name"
#   .repos.slice(0,5) → prvních 5 repozitářů
Bash
# fx funguje také jako neinteraktivní formátor (jako jq . ale s JS syntaxí)
# Předejte JavaScript výraz jako argument — žádný interaktivní režim
echo '{"users":[{"id":1,"name":"Sarah Chen"},{"id":2,"name":"Marcus Osei"}]}' \
  | fx '.users[0].name'
# Sarah Chen

# Řetězení s map pro transformace polí
cat deployments.json | fx '.items.map(d => ({id: d.deploy_id, status: d.state}))'

Časté chyby

Tyto čtyři chyby se opakují, když vývojáři začínají používat terminálové prohlížeče JSON — každá má jasné řešení, jakmile pochopíte proč k ní dochází.

Použití jq . pro prohlížení velkých odpovědí (výstup se odscrolluje)

Problém: jq . vypíše celý výstup do stdout najednou. Pro odpovědi delší než výška terminálu vše nad posledním zobrazením zmizí — nelze se vrátit na začátek ani přejít na konkrétní pole.

Řešení: Přesměrujte do jless pro interaktivní navigaci nebo použijte jq -C . | less -R jako zálohu. Obě možnosti zachovají celý dokument přístupný bez ohledu na jeho velikost.

Before · Bash
After · Bash
# 300řádková API odpověď — prvních 280 řádků okamžitě odscrolluje
curl -s https://api.github.com/users/torvalds | jq .
# Viditelný pouze spodek výstupu — nelze se vrátit
# Celý dokument přístupný v jless — nic se neztrácí
curl -s https://api.github.com/users/torvalds | jless
# j/k pro scrollování, h/l pro sbalení/rozbalení, / pro vyhledávání
Nastavení JQ_COLORS s chybným počtem segmentů

Problém: JQ_COLORS vyžaduje přesně sedm hodnot oddělených dvojtečkami. Pokud má řetězec šest nebo osm hodnot, jq tiše ignoruje celou proměnnou a vrátí se k vestavěným výchozím hodnotám — bez varování, bez chyby, jen špatné barvy.

Řešení: Spočítejte dvojtečky: platný řetězec JQ_COLORS má přesně šest dvojteček a sedm hodnot. Vypište proměnnou a přesměrujte do tr pro počítání.

Before · Bash
After · Bash
# Pouze 6 hodnot — jq tiše použije výchozí hodnoty, bez označení proč
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96"
echo '{"ok":true}' | jq .  # barvy nezměněny — žádná chyba zobrazena
# Přesně 7 hodnot — 6 dvojteček
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"

# Ověřte počet před přidáním do profilu shellu
echo "$JQ_COLORS" | tr -cd ':' | wc -c   # musí vypsat 6
Přesměrování výstupu jless nebo fx do jiného příkazu

Problém: jless a fx vykreslují své interaktivní rozhraní do terminálu (TTY), ne do stdout. Přesměrování do grep, tee nebo jiného příkazu produkuje zkomolené ANSI escape kódy nebo prázdný výstup — interaktivní výstup prohlížeče není navržen pro konzumaci jinými programy.

Řešení: Používejte jq s explicitním filtrem pro programové extrahování dat. Používejte jless a fx pouze jako poslední krok v pipeline, když člověk čte výstup.

Before · Bash
After · Bash
# Výstup jless je pro lidské oči — přesměrování produkuje nesmysly
jless response.json | grep "request_id"
# Výstup: ANSI escape kódy a řídicí sekvence, ne čistý text
# Použijte jq pro programové extrahování — čisté, kompozitovatelné
jq -r '.request_id' response.json | grep "req_"

# Používejte jless pouze jako koncový bod v terminálu — nic za ním
jless response.json
Použití jq -C bez less -R (barevné kódy se tisknou jako doslovný text)

Problém: -C vynucuje ANSI barevné kódy do výstupního proudu. Když je tento proud vytištěn přímo do terminálu, který není v raw módu — nebo přesměrován do nástroje, který neinterpretuje ANSI — escape sekvence se objevují jako doslovné znaky jako ^[[1;34m zaplňující výstup.

Řešení: Vždy párujte jq -C s less -R. Přepínač -R přepne less do režimu raw-input a říká mu renderovat ANSI sekvence jako barvy namísto tisknutí jako text.

Before · Bash
After · Bash
# -C bez -R: escape sekvence tisknuty jako surový text
jq -C . response.json | less
# Výstup: ^[[1;34m"status"^[[0m: ^[[0;32m"ok"^[[0m ...
# -C s -R: ANSI kódy vykresleny jako skutečné barvy
jq -C . response.json | less -R
# Výstup: obarvený JSON, čistý a čitelný

jless vs jq vs bat vs fx — Porovnání interaktivních prohlížečů

Všechny čtyři nástroje vykreslují obarvený JSON, ale jejich interaktivní možnosti se výrazně liší. Vybírejte podle toho, zda potřebujete sbalitelnou navigaci, vyhledávání nebo podporu myši — a zda je Node.js již ve vašem prostředí.

Nástroj
Interaktivní navigace
Vyhledávání
Sbalitelnost
Barvy
Velké soubory
Instalace
jless
✅ vim-klávesy
✅ (/, n, N)
✅ (klávesy h/l)
✅ (vestavěné)
✅ (streaming)
brew / binary
jq -C | less -R
⚠️ (pouze less)
✅ (/ v less)
✅ (ANSI)
⚠️ (bufferuje vše)
pouze jq
fx
✅ šipkové klávesy
✅ (/)
⚠️ (načítání JS)
npm install -g fx
bat
⚠️ (pouze pager)
❌ (v bat)
✅ (motiv)
⚠️ (čte vše)
brew / apt
jq . (plain)
❌ (scrolluje)
✅ (pouze tty)
brew / apt

Ve většině situací: nainstalujte jless jednou a používejte jako výchozí interaktivní prohlížeč. Ponechte si jq -C . | less -R jako zálohu pro prostředí, kde nemůžete instalovat další binární soubory. Přidejte fx pokud je váš tým primárně na Node.js a cení si navigaci myší nebo živé JavaScript filtrování.

Často kladené otázky

Jak vyhledat konkrétní klíč v JSON souboru v terminálu?

V jless stiskněte /, čímž otevřete prompt inkrementálního hledání, zadejte název klíče a stiskněte Enter. Použijte n pro přechod na další shodu a N na předchozí. Vyhledávání rozlišuje ve výchozím nastavení velká a malá písmena. V jq -C | less -R znak / spustí vestavěné hledání less, které hledá v surových textech včetně ANSI kódů — hledání v jless je spolehlivější pro strukturovaný JSON.

Bash
# Otevřete soubor v jless, poté stiskněte / pro vyhledávání
jless api-response.json
# V jless: napište /  →  "request_id"  →  Enter  →  n pro další shodu

# Alternativa s jq: extrahujte a vytiskněte všechny odpovídající klíče
jq '.. | objects | with_entries(select(.key == "request_id"))' api-response.json

Jak procházet hluboko vnořenou JSON strukturu pomocí klávesových zkratek?

jless napodobuje navigaci vim: j/k pro pohyb nahoru/dolů, h pro sbalení uzlu, l pro rozbalení. Stiskněte H pro sbalení aktuálního uzlu a všech jeho sousedů najednou — užitečné pro získání přehledu před prozkoumáváním konkrétní větve. L vše rekurzivně rozbalí. Jakmile sbalíte vše na nejvyšší úroveň, rozbalte pouze cestu, která vás zajímá, pomocí l.

Bash
# Otevřete odpověď v jless
curl -s https://api.github.com/repos/jqlang/jq | jless
# V jless:
#   H            → sbalte všechny klíče nejvyšší úrovně
#   j/k          → přejděte na klíč, který chcete
#   l            → rozbalte pouze tuto větev
#   gg           → návrat ke kořenu
#   G            → skok na poslední prvek

Jak zlepšit čitelnost barevného výstupu jq na tmavém terminálu?

Nastavte proměnnou prostředí JQ_COLORS s ANSI kódy attribute;color pro každý typ JSON. Sedm pozic v pořadí: null, false, true, čísla, řetězce, pole, objekty. Vložte export do ~/.bashrc nebo ~/.zshrc pro použití při každém volání jq. Tučné jasné barvy fungují nejlépe na tmavém pozadí.

Bash
# Vysoký kontrast pro tmavé terminály — přidejte do ~/.bashrc nebo ~/.zshrc
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=šedá, false=jasně-červená, true=jasně-zelená,
# numbers=jasně-žlutá, strings=zelená, arrays/objects=jasně-azurová

# Test bez restartování shellu
echo '{"active":true,"errors":0,"tags":["api","v2"]}' | jq .

Jaký je rozdíl mezi jless a jq . pro prohlížení JSON?

jq . odescrolluje výstup přes horní část terminálu a nedává žádný způsob, jak se vrátit zpět — užitečné pro malé odpovědi, ale nepraktické pro cokoli nad 50 řádků. jless vykreslí celý dokument v interaktivním pageru, kde lze scrollovat, vyhledávat, sbalovat uzly a navigovat pomocí klávesových zkratek bez ztráty kontextu. Použijte jq . pro rychlý pohled na malá data; jless když potřebujete zkoumat.

Bash
# Malá data — jq . je v pořádku
echo '{"status":"ok","version":"2.4.1"}' | jq .

# Velká nebo vnořená odpověď — jless je lepší
curl -s https://api.github.com/repos/jqlang/jq | jless
# → interaktivní strom, nic neodjede z obrazovky

Jak interaktivně prohlížet JSON z curl odpovědi v terminálu?

Přesměrujte curl přímo do jless. Vždy používejte -s (silent), aby se ukazatel průběhu curl neobjevil ve výstupu. jless otevře interaktivní prohlížeč s celou odpovědí vykreslenou jako sbalitelný strom. Pokud jless není nainstalován, jq -C . | less -R poskytne jako zálohu obarvený pager.

Bash
# Interaktivní průzkum s jless
curl -s https://api.github.com/users/torvalds | jless

# Obarvený pager jako záloha (bez sbalování, ale stále scrollovatelný s barvami)
curl -s https://api.github.com/users/torvalds | jq -C . | less -R

Mohu prohlížet více JSON souborů vedle sebe v terminálu?

jless otevírá vždy jeden soubor. Pro zobrazení vedle sebe použijte terminálový multiplexer: tmux split-window -h otevře vertikální rozdělení, poté spusťte jless v každém panelu s jiným souborem. Případně použijte prohlížečový nástroj JSON Diff pro strukturální porovnání dvou dokumentů.

Bash
# tmux vedle sebe: horizontální rozdělení, pak jless v každém panelu
tmux split-window -h
# Levý panel:  jless response-v1.json
# Pravý panel: jless response-v2.json

# Nebo diff na výstupu normalizovaném přes jq
diff <(jq -S . response-v1.json) <(jq -S . response-v2.json)

Související nástroje

Nástroj JSON Pretty Print vám dává stejný sbalitelný, obarvený pohled jako jless — přímo v prohlížeči, bez instalace a bez terminálu.

CM
Cora MatsumotoPlatform Engineer

Cora is a platform engineer who builds developer tooling and internal platforms, using Bash as the glue that connects components written in different languages and runtimes. She writes about cross-platform shell scripting, Bash utility functions, environment management, configuration templating, and the practical shell techniques that platform engineers use to build self-service tooling for development teams.

NO
Nadia OkonkwoTechnický recenzent

Nadia is a site reliability engineer who lives in the terminal. She writes Bash scripts that process logs, transform data, and orchestrate infrastructure across fleets of servers. She is a heavy user of jq, awk, and sed and writes about shell one-liners, text processing pipelines, data serialisation from the command line, and the practical Bash patterns that SREs reach for when speed matters more than elegance.