Bash JSON Viewer โ€” jless & JQ_COLORS

ยทPlatform EngineerยทDitinjau olehNadia OkonkwoยทDiterbitkan

Gunakan JSON Pretty Print gratis langsung di browser Anda โ€” tidak perlu instalasi.

Coba JSON Pretty Print Online โ†’

Ketika Anda membutuhkan viewer JSON bash untuk eksplorasi interaktif alih-alih scripting, pipe standar jq . kurang memadai โ€” output bergulir melampaui bagian atas terminal dan Anda tidak memiliki cara untuk menavigasi kembali melalui respons API 300 baris. Panduan ini mencakup alat yang dibangun khusus untuk melihat JSON secara interaktif di terminal: jless (pohon yang dapat diciutkan dengan navigasi tombol vim), JQ_COLORS tema warna kustom, jq -C | less -R paging berwarna, alias shell untuk penggunaan sehari-hari, dan fx sebagai alternatif Node.js. Untuk scripting, CI/CD, dan alur kerja validasi, lihat panduan Format JSON di Bash yang menjadi pasangannya. Untuk viewer browser tanpa instalasi, alat Pemformat JSON bekerja secara instan. Contoh diuji pada Bash 5.x (macOS via Homebrew, Ubuntu 22.04+) dan kompatibel dengan Bash 3.2+ (shell sistem macOS).

POIN UTAMA
  • โ€ข jless โ€” viewer JSON interaktif terbaik untuk terminal: pohon yang dapat diciutkan, tombol vim, pencarian inkremental
  • โ€ข jq -C . | less -R โ€” pager berwarna yang dapat di-scroll tanpa instalasi tambahan selain jq
  • โ€ข JQ_COLORS โ€” variabel lingkungan yang mengkustomisasi skema warna ANSI jq untuk setiap tipe JSON
  • โ€ข fx โ€” viewer JSON interaktif Node.js dengan dukungan mouse dan ekspresi filter JavaScript
  • โ€ข alias jv='jless' โ€” perintah satu kata menjadikan penampilan interaktif kebiasaan otomatis

Penampilan JSON Interaktif vs. Berbasis Skrip

Mem-pipe JSON ke jq . adalah pilihan tepat saat Anda ingin output terformat untuk payload kecil, atau saat hasilnya diteruskan ke perintah lain. Ini pilihan yang salah saat Anda perlu menjelajahi respons API dengan 200 field โ€” output terbang melampaui jendela terminal dan membuat Anda tidak memiliki cara untuk menavigasi, menciutkan bagian, atau mencari field tertentu tanpa menjalankan ulang perintah dengan filter. Viewer JSON interaktif merender output yang sama โ€” terformat dan berwarna โ€” di dalam pager persisten tempat Anda mengontrol navigasi. Datanya identik; perbedaannya adalah antarmukanya.

Before ยท Bash
After ยท Bash
# jq . โ€” output scrolls off screen for large responses
curl -s https://api.github.com/users/torvalds | jq .
# 300+ lines scroll past โ€” you lose context immediately
# jless โ€” opens an interactive pager, nothing scrolls off
curl -s https://api.github.com/users/torvalds | jless
# Full document visible, collapsible, searchable with j/k/h/l
Catatan:Viewer interaktif hanya untuk inspeksi manusia โ€” tidak boleh muncul dalam skrip, pipeline CI, atau otomasi. Untuk pemrosesan JSON secara programatik, gunakan jq dengan filter eksplisit dan penanganan kode keluar. Panduan Format JSON di Bash mencakup pola scripting tersebut.

jless โ€” Viewer JSON Interaktif

jless adalah viewer JSON terminal yang dibuat khusus. Tidak seperti pipe jq biasa, ia merender dokumen sebagai pohon yang dapat diciutkan secara persisten: setiap objek dan array dapat diperluas atau diciutkan secara independen dengan l dan h, navigasi menggunakan tombol bergaya vim, dan pencarian inkremental menemukan kunci atau nilai apa pun secara instan. Ia melakukan streaming input secara inkremental, sehingga membuka file besar dan respons API dalam waktu kurang dari satu detik tanpa memperhatikan ukuran โ€” di mana jq menyangga seluruh dokumen sebelum menampilkan apa pun. Saya selalu menggunakan jless sebagai alat pertama setiap kali respons API terlalu besar untuk dipindai sekilas.

Instalasi

Bash
# macOS
brew install jless

# Linux โ€” prebuilt binary from 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/

# Verify
jless --version

Penggunaan dasar

Bash
# Open a local file โ€” interactive tree viewer launches immediately
jless api-response.json

# Pipe any JSON stream directly into jless
curl -s https://api.github.com/users/torvalds | jless

# Open with all nodes collapsed to top level (useful starting point for large documents)
jless --mode line api-response.json

# Load a specific array element and view it in isolation
jq '.[0]' deployments.json | jless

Navigasi dan pencarian dalam praktik

Bash
# Inside jless:
#
#   j / โ†“        move down
#   k / โ†‘        move up
#   l / โ†’        expand node (or Enter)
#   h / โ†        collapse node
#   H            collapse current + all siblings โ†’ high-level overview
#   L            expand everything recursively
#
#   /            start forward search โ€” type a key name and press Enter
#   n / N        next / previous search match
#
#   g / gg       jump to start
#   G            jump to end
#   q            quit

Referensi Pintasan Keyboard jless

Semua pintasan tersedia segera setelah membuka jless โ€” tidak diperlukan konfigurasi. Model navigasi sengaja dibuat identik dengan vim sehingga kebiasaan otomatis yang sudah ada dapat digunakan.

Tombol
Aksi
Kapan Digunakan
j / โ†“
Pindahkan kursor satu baris ke bawah
Memindai kunci objek atau item array
k / โ†‘
Pindahkan kursor satu baris ke atas
Kembali ke field sebelumnya
J
Pindah 5 baris ke bawah
Scroll lebih cepat melalui array panjang
K
Pindah 5 baris ke atas
Navigasi ke atas lebih cepat
h / โ† / -
Ciutkan node saat ini
Menyembunyikan objek bertingkat besar untuk mengurangi gangguan
l / โ†’ / +
Perluas node saat ini
Membuka objek atau array yang diciutkan
H
Ciutkan node saat ini dan semua saudaranya
Mendapatkan gambaran umum struktur tingkat atas
L
Perluas semua node secara rekursif
Mengungkap kedalaman penuh struktur bertingkat
g
Loncat ke awal dokumen
Kembali ke root dengan cepat
G
Loncat ke akhir dokumen
Meloncat ke elemen terakhir dalam array besar
/
Mulai pencarian maju
Menemukan kunci atau nilai tertentu dalam dokumen
?
Mulai pencarian mundur
Mencari ke atas dari posisi saat ini
n
Loncat ke hasil pencarian berikutnya
Menelusuri semua kemunculan kata pencarian
N
Loncat ke hasil pencarian sebelumnya
Menelusuri hasil pencarian ke belakang
q
Keluar dari jless
Keluar setelah inspeksi selesai

jq -C | less -R โ€” Paging Berwarna Tanpa Alat Tambahan

Jika jless tidak terinstal dan Anda membutuhkan tampilan berwarna yang dapat di-scroll dari respons JSON, jq -C . | less -R adalah fallback yang mumpuni. Flag -C memaksa kode warna ANSI bahkan saat stdout adalah pipe (biasanya jq menghapusnya), dan -R memberi tahu less untuk merender kode tersebut alih-alih mencetaknya sebagai teks literal. Hasilnya adalah dokumen berwarna penuh yang dapat di-scroll โ€” tanpa struktur pohon interaktif dari jless. Navigasi di dalam less menggunakan tombol panah atau vim-style j/k, dan / memicu pencarian teks bawaan less.

Bash
# Basic colorized pager
jq -C . response.json | less -R

# From a curl response โ€” -s prevents progress bar from corrupting the JSON stream
curl -s https://api.github.com/repos/jqlang/jq | jq -C . | less -R

# Sort keys for easier visual scanning, then page
jq -CS . config.json | less -R
# -C = force color, -S = sort keys (both flags combined)

# Add an alias so you never have to type the full pipe again
alias jqv='jq -C . | less -R'
# Usage: cat response.json | jqv
#    or: curl -s https://api.example.com/status | jqv
Catatan:jq -C | less -R menyangga seluruh output terformat sebelum less dapat menampilkannya. Pada file 200 MB ini berarti menunggu beberapa detik dan menghabiskan memori yang signifikan โ€” keterbatasan yang sama seperti jq . biasa. Untuk file besar, gunakan jless yang melakukan streaming secara inkremental.

JQ_COLORS โ€” Tema Warna Kustom

JQ_COLORS adalah variabel lingkungan yang mengganti skema warna ANSI default jq. Ia mengambil string yang dipisahkan titik dua berisi tujuh kode atribut ANSI;warna, satu per tipe JSON dalam urutan tetap ini: null : false : true : angka : string : array : objek. Setiap kode dalam format atribut;warna di mana atribut adalah 0 (normal), 1 (tebal), 2 (redup), atau 4 (bergaris bawah), dan warna adalah nomor warna ANSI standar (30โ€“37 = standar, 90โ€“97 = cerah).

Bash
# ANSI color reference for building JQ_COLORS:
#   Attributes:  0=normal  1=bold  2=dim  4=underline
#   Colors:      30=black  31=red  32=green  33=yellow
#                34=blue   35=magenta  36=cyan  37=white
#   Bright:      90=bright-black  91=bright-red  92=bright-green  93=bright-yellow
#                94=bright-blue  95=bright-magenta  96=bright-cyan  97=bright-white
#
# Order: null : false : true : numbers : strings : arrays : objects

# High-contrast theme for dark terminals (recommended)
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=dim-gray, false=bright-red, true=bright-green,
# numbers=bright-yellow, strings=green, arrays=bold-cyan, objects=bold-cyan

# Solarized-style theme
export JQ_COLORS="2;37:0;35:0;35:0;36:0;33:1;34:1;34"
# null=dim-white, false=magenta, true=magenta,
# numbers=cyan, strings=yellow, arrays=bold-blue, objects=bold-blue

# Minimal (bold keys only, everything else plain)
export JQ_COLORS="0;90:0;39:0;39:0;39:0;39:1;39:1;39"
Bash
# Add your chosen theme to ~/.bashrc or ~/.zshrc so it applies to every jq call
echo 'export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"' >> ~/.bashrc
source ~/.bashrc

# Test the theme
echo '{"active":true,"errors":null,"count":42,"tags":["api","v2"],"meta":{"version":"1.0"}}' | jq .
Peringatan:JQ_COLORS harus memiliki tepat tujuh nilai yang dipisahkan titik dua. Jika string memiliki lebih sedikit segmen, jq diam-diam kembali ke default bawaan tanpa pesan error apa pun โ€” membuat kesalahan konfigurasi sulit didiagnosis. Selalu uji string warna baru pada payload JSON pendek sebelum menambahkannya ke profil shell Anda.

Alias Shell untuk Penampilan JSON Sehari-hari

Perintah untuk penampilan JSON interaktif secara default cukup panjang. Sekumpulan alias kecil di ~/.bashrc atau ~/.zshrc menjadikan jless dan paging berwarna sebagai perintah satu kata yang terintegrasi secara alami ke dalam alur kerja apa pun. Alias di bawah ini dapat dikombinasikan โ€” jv dan jvp keduanya menerima input yang di-pipe atau nama file sebagai argumen pertama.

Bash
# Add to ~/.bashrc or ~/.zshrc

# jv โ€” interactive viewer (jless if available, colorized pager fallback)
jv() {
  if command -v jless &>/dev/null; then
    jless "$@"
  else
    jq -C . "$@" | less -R
  fi
}

# jvp โ€” view with keys sorted alphabetically (useful for comparing responses)
alias jvp='jq -CS . | less -R'

# jvc โ€” view from clipboard (macOS)
alias jvc='pbpaste | jless'

# jvf โ€” view and filter: jvf '.users[0]' response.json
jvf() {
  local filter="$1"; shift
  jq -C "$filter" "$@" | less -R
}

# Reload without restarting terminal
source ~/.bashrc
Bash
# Usage examples after adding aliases above

# View any file or piped response
jv deployment-config.json
curl -s https://api.github.com/users/torvalds | jv

# View sorted (easy to scan alphabetically)
cat feature-flags.json | jvp

# Drill into a sub-document interactively
jvf '.database' infra/app-config.json
jvf '.users[] | select(.role == "admin")' users.json

bat โ€” Penampilan File JSON dengan Sorotan Sintaks

bat adalah pengganti cat dengan sorotan sintaks, nomor baris, dan pager bawaan. Untuk file JSON di disk, ia menyediakan pengalaman membaca yang bersih bergaya editor tanpa membuka editor teks penuh. Tidak seperti jless, bat merender file sebagai teks statis โ€” tidak ada ciutan, tidak ada pencarian, tidak ada navigasi selain scrolling. Kekuatannya adalah kejelasan visual untuk file statis berukuran sedang (konfigurasi, fixture, payload pengujian) di mana Anda ingin warna sintaks dan nomor baris tetapi tidak memerlukan navigasi pohon interaktif.

Bash
# macOS
brew install bat

# Debian / Ubuntu (binary may be named batcat)
apt-get install -y bat
# alias bat=batcat   # add to ~/.bashrc if needed on Ubuntu

# View a JSON file with syntax highlighting and line numbers
bat config/feature-flags.json

# Disable pager โ€” print directly to terminal (useful in scripts)
bat --paging=never api-response.json

# Combine with jq: format with jq, view with bat (preserves bat's JSON highlighting)
jq '.' response.json | bat --language=json --paging=never
Catatan:Gunakan bat untuk membaca file konfigurasi statis dan fixture pengujian di mana nomor baris penting (misalnya saat kegagalan pengujian merujuk baris 47 dari file fixture). Untuk respons API dan JSON dinamis dari curl, jless lebih cepat dibuka dan lebih praktis untuk dinavigasi. Jika perlu melihat di browser dan berbagi dengan rekan, tempelkan langsung ke alat Pemformat JSON โ€” tidak diperlukan terminal.

fx โ€” Penjelajah JSON Interaktif Node.js

fx adalah viewer JSON interaktif yang dibangun di atas Node.js. Antarmukanya mirip dengan jless โ€” pohon yang dapat diciutkan, navigasi keyboard, pencarian โ€” tetapi menambahkan dua fitur yang tidak dimiliki jless: dukungan mouse (klik untuk memperluas/menciutkan node) dan kemampuan mengetikkan ekspresi JavaScript di bilah bawah untuk memfilter dokumen secara real time. Untuk tim yang sudah menjalankan Node.js, fx adalah pilihan yang alami dan tidak memerlukan binary terpisah. Untuk lingkungan terminal murni tanpa Node, jless adalah pilihan yang lebih ramping.

Bash
# Install globally via npm
npm install -g fx

# Or run without installing (npx caches the package)
curl -s https://api.github.com/users/torvalds | npx fx

# Basic interactive use
fx api-response.json
curl -s https://api.github.com/repos/jqlang/jq | fx

# In fx: arrow keys navigate, Enter expands/collapses, / searches
# Bottom bar accepts JavaScript expressions for live filtering:
#   .name           โ†’ show only the "name" field
#   .repos.slice(0,5) โ†’ first 5 repos
Bash
# fx also works as a non-interactive formatter (like jq . but with JS syntax)
# Pass a JavaScript expression as argument โ€” no interactive mode
echo '{"users":[{"id":1,"name":"Sarah Chen"},{"id":2,"name":"Marcus Osei"}]}' \
  | fx '.users[0].name'
# Sarah Chen

# Chain with map for array transformations
cat deployments.json | fx '.items.map(d => ({id: d.deploy_id, status: d.state}))'

Kesalahan Umum

Empat kesalahan ini muncul berulang kali saat developer pertama kali mulai menggunakan viewer JSON terminal โ€” masing-masing memiliki solusi yang jelas setelah Anda memahami mengapa hal itu terjadi.

โŒ Menggunakan jq . untuk melihat respons besar (output bergulir melampaui layar)

Masalah: jq . membuang semua output ke stdout sekaligus. Untuk respons yang lebih panjang dari tinggi terminal Anda, semua yang ada di atas layar terakhir hilang โ€” Anda tidak dapat scroll kembali ke awal atau menavigasi ke field tertentu.

Solusi: Pipe ke jless untuk navigasi interaktif, atau gunakan jq -C . | less -R sebagai fallback. Keduanya membuat dokumen lengkap tetap dapat diakses tanpa memperhatikan ukurannya.

Before ยท Bash
After ยท Bash
# 300-line API response โ€” top 280 lines immediately scroll off
curl -s https://api.github.com/users/torvalds | jq .
# Only the bottom of the output is visible โ€” cannot navigate back
# Full document stays accessible in jless โ€” nothing is lost
curl -s https://api.github.com/users/torvalds | jless
# j/k to scroll, h/l to collapse/expand, / to search
โŒ Menyetel JQ_COLORS dengan jumlah segmen yang salah

Masalah: JQ_COLORS memerlukan tepat tujuh nilai yang dipisahkan titik dua. Jika string memiliki enam atau delapan nilai, jq diam-diam mengabaikan seluruh variabel dan kembali ke default bawaan โ€” tidak ada peringatan, tidak ada error, hanya warna yang salah.

Solusi: Hitung titik duanya: string JQ_COLORS yang valid memiliki tepat enam titik dua dan tujuh nilai. Echo variabel dan pipe ke tr untuk menghitung.

Before ยท Bash
After ยท Bash
# Only 6 values โ€” jq silently uses defaults, no indication of why
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96"
echo '{"ok":true}' | jq .  # colors unchanged โ€” no error shown
# Exactly 7 values โ€” 6 colons
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"

# Verify the count before adding to shell profile
echo "$JQ_COLORS" | tr -cd ':' | wc -c   # must output 6
โŒ Mem-pipe output jless atau fx ke perintah lain

Masalah: jless dan fx merender antarmuka interaktifnya ke terminal (TTY), bukan ke stdout. Mem-pipe-nya ke grep, tee, atau perintah lain menghasilkan kode escape ANSI yang kacau atau output kosong โ€” output interaktif viewer tidak dirancang untuk dikonsumsi oleh program lain.

Solusi: Gunakan jq dengan filter eksplisit untuk mengekstrak data secara programatik. Gunakan jless dan fx hanya sebagai langkah akhir dalam pipeline saat manusia membaca output.

Before ยท Bash
After ยท Bash
# jless output is for human eyes โ€” piping it produces garbage
jless response.json | grep "request_id"
# Output: ANSI escape codes and cursor sequences, not clean text
# Use jq for programmatic extraction โ€” clean, composable
jq -r '.request_id' response.json | grep "req_"

# Use jless only as the terminal endpoint โ€” nothing after it
jless response.json
โŒ Menggunakan jq -C tanpa less -R (kode warna mencetak sebagai teks literal)

Masalah: -C memaksa kode warna ANSI ke dalam aliran output. Ketika aliran tersebut dicetak langsung ke terminal yang tidak dalam mode raw โ€” atau di-pipe ke alat yang tidak menginterpretasikan ANSI โ€” urutan escape muncul sebagai karakter literal seperti ^[[1;34m yang mengacaukan output.

Solusi: Selalu pasangkan jq -C dengan less -R. Flag -R menempatkan less ke mode raw-input, memberitahunya untuk merender urutan ANSI sebagai warna alih-alih mencetaknya sebagai teks.

Before ยท Bash
After ยท Bash
# -C without -R: escape sequences print as raw text
jq -C . response.json | less
# Output: ^[[1;34m"status"^[[0m: ^[[0;32m"ok"^[[0m ...
# -C with -R: ANSI codes are rendered as actual colors
jq -C . response.json | less -R
# Output: colorized JSON, clean and readable

jless vs jq vs bat vs fx โ€” Perbandingan Viewer Interaktif

Keempat alat merender JSON berwarna, tetapi kemampuan interaktifnya berbeda secara signifikan. Pilih berdasarkan apakah Anda memerlukan navigasi yang dapat diciutkan, pencarian, atau dukungan mouse โ€” dan apakah Node.js sudah ada di lingkungan Anda.

Alat
Navigasi Interaktif
Pencarian
Bisa Diciutkan
Warna
File Besar
Instalasi
jless
โœ… vim-keys
โœ… (/, n, N)
โœ… (h/l keys)
โœ… (built-in)
โœ… (streaming)
brew / binary
jq -C | less -R
โš ๏ธ (less only)
โœ… (/ in less)
โŒ
โœ… (ANSI)
โš ๏ธ (buffers all)
jq only
fx
โœ… arrow keys
โœ… (/)
โœ…
โœ…
โš ๏ธ (JS load)
npm install -g fx
bat
โš ๏ธ (pager only)
โŒ (in bat)
โŒ
โœ… (theme)
โš ๏ธ (reads all)
brew / apt
jq . (plain)
โŒ (scrolls off)
โŒ
โŒ
โœ… (tty only)
โŒ
brew / apt

Untuk sebagian besar situasi: instal jless sekali dan gunakan sebagai viewer interaktif default. Simpan jq -C . | less -R sebagai fallback untuk lingkungan yang tidak dapat menginstal binary tambahan. Tambahkan fx jika tim Anda berbasis Node.js dan menghargai navigasi mouse atau pemfilteran JavaScript langsung.

Pertanyaan yang Sering Diajukan

Bagaimana cara mencari kunci tertentu di dalam file JSON di terminal?

Di jless, tekan / untuk membuka prompt pencarian inkremental, ketik nama kunci, dan tekan Enter. Gunakan n untuk meloncat maju melalui kecocokan dan N untuk mundur. Pencarian bersifat case-sensitive secara default. Di jq -C | less -R, / memicu pencarian bawaan less yang mencocokkan teks mentah termasuk kode warna ANSI โ€” pencarian jless lebih andal untuk JSON terstruktur.

Bash
# Open file in jless, then press / to search
jless api-response.json
# In jless: type /  โ†’  "request_id"  โ†’  Enter  โ†’  n for next match

# jq alternative: extract and print all matching keys to stdout
jq '.. | objects | with_entries(select(.key == "request_id"))' api-response.json

Bagaimana cara menavigasi struktur JSON yang sangat bertingkat dengan pintasan keyboard?

jless mengikuti navigasi vim: j/k untuk naik/turun, h untuk menciutkan node, l untuk memperluasnya. Tekan H untuk menciutkan node saat ini dan semua saudaranya sekaligus โ€” berguna untuk mendapatkan gambaran tingkat tinggi sebelum menyelami cabang tertentu. L memperluas segalanya secara rekursif. Setelah menciutkan semua ke tingkat atas, perluas hanya jalur yang Anda inginkan dengan l.

Bash
# Open the response in jless
curl -s https://api.github.com/repos/jqlang/jq | jless
# In jless:
#   H            โ†’ collapse all top-level keys
#   j/k          โ†’ navigate to the key you want
#   l            โ†’ expand only that branch
#   gg           โ†’ return to root
#   G            โ†’ jump to last element

Bagaimana cara membuat output warna jq lebih mudah dibaca di terminal gelap?

Atur variabel lingkungan JQ_COLORS dengan kode atribut ANSI;warna untuk setiap tipe JSON. Tujuh posisi secara berurutan adalah: null, false, true, angka, string, array, objek. Taruh export di ~/.bashrc atau ~/.zshrc agar berlaku untuk setiap panggilan jq. Warna cerah tebal bekerja paling baik di latar belakang gelap.

Bash
# High-contrast theme for dark terminals โ€” add to ~/.bashrc or ~/.zshrc
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=gray, false=bright-red, true=bright-green,
# numbers=bright-yellow, strings=green, arrays/objects=bright-cyan

# Test immediately without reloading shell
echo '{"active":true,"errors":0,"tags":["api","v2"]}' | jq .

Apa perbedaan antara jless dan jq . untuk melihat JSON?

jq . membuang semua output ke stdout sekaligus. Untuk respons yang lebih panjang dari tinggi terminal Anda, semua yang ada di atas layar terakhir hilang โ€” Anda tidak dapat scroll kembali ke awal atau menavigasi ke field tertentu tanpa menjalankan ulang perintah dengan filter. jless merender seluruh dokumen dalam pager persisten di mana Anda dapat scroll, mencari, menciutkan node, dan menavigasi dengan pintasan keyboard tanpa kehilangan konteks. Gunakan jq . saat ingin sekilas melihat payload kecil; gunakan jless saat perlu menjelajah.

Bash
# Small payload โ€” jq . is fine
echo '{"status":"ok","version":"2.4.1"}' | jq .

# Large or nested response โ€” jless is better
curl -s https://api.github.com/repos/jqlang/jq | jless
# โ†’ interactive tree, no output scrolled off screen

Bagaimana cara melihat JSON dari respons curl secara interaktif di terminal?

Pipe curl langsung ke jless. Selalu sertakan -s (silent) untuk mencegah progress bar curl muncul di output. jless akan membuka viewer interaktif dengan respons penuh yang dirender sebagai pohon yang dapat diciutkan. Jika jless tidak terinstal, jq -C . | less -R memberikan pager berwarna sebagai fallback.

Bash
# Interactive exploration with jless
curl -s https://api.github.com/users/torvalds | jless

# Colorized pager fallback (no collapse, but still scrollable with color)
curl -s https://api.github.com/users/torvalds | jq -C . | less -R

Bisakah saya melihat beberapa file JSON berdampingan di terminal?

jless membuka satu file sekaligus. Untuk perbandingan berdampingan, gunakan terminal multiplexer: tmux split-window -h membuka split vertikal, lalu jalankan jless di setiap panel dengan file yang berbeda. Alternatifnya, gunakan alat JSON Diff berbasis browser jika Anda perlu membandingkan dua dokumen secara struktural.

Bash
# tmux side-by-side: split horizontally, then run jless in each pane
tmux split-window -h
# Left pane:  jless response-v1.json
# Right pane: jless response-v2.json

# Or use diff on jq-normalized output for a text diff
diff <(jq -S . response-v1.json) <(jq -S . response-v2.json)

Alat Terkait

Alat Pemformat JSON memberikan tampilan yang dapat diciutkan dan berwarna yang sama seperti jless โ€” langsung di browser, tanpa instalasi dan tanpa terminal.

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 OkonkwoPeninjau teknis

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.