Cara Memformat JSON: Panduan Pretty Print dan Beautify 2026
Pelajari cara memformat dan mempercantik JSON menggunakan alat baris perintah, editor kode, pemformat online, dan bahasa pemrograman. Panduan lengkap dengan contoh.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# Cara Memformat JSON: Panduan Pretty Print dan Beautify
Memformat JSON dengan benar sangat penting untuk keterbacaan dan debugging. Baik Anda sedang mengerjakan tanggapan API, file konfigurasi, atau ekspor data, panduan komprehensif ini akan menunjukkan kepada Anda setiap metode untuk memformat dan mempercantik JSON di tahun 2026.
Mengapa Memformat JSON?
Keterbacaan
Diminimalkan (sulit dibaca):{"name":"John","age":30,"address":{"street":"123 Main St","city":"NYC"},"hobbies":["membaca","coding"]}
Diformat (mudah dibaca):
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "NYC"
},
"hobbies": [
"membaca",
"coding"
]
}
Debugging
JSON yang diformat mempermudah untuk:
- Menemukan kesalahan sintaksis
- Mengidentifikasi koma yang hilang
- Memverifikasi struktur data
- Melacak masalah
Kontrol Versi
JSON yang diformat dengan benar menghasilkan diff yang lebih bersih di Git.
Metode 1: Pemformat JSON Online
Big JSON Viewer
Cepat, menangani file besar:
JSONLint
Memvalidasi dan memformat:
JSON Formatter
Sederhana dan cepat:
Metode 2: Alat Command Line
Menggunakan jq
Pemroses JSON baris perintah yang paling kuat:
# Format file JSON
jq . input.json
# Format dan simpan
jq . input.json > formatted.json
# Format dengan indentasi 4 spasi
jq --indent 4 . input.json
# Format dari tanggapan API
curl https://api.example.com/data | jq .
# Ringkas (minify)
jq -c . input.json
Instalasi:
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# Windows (dengan Chocolatey)
choco install jq
Menggunakan Python
Alat bawaan:
# Format file JSON (indentasi 2 spasi)
python -m json.tool input.json
# Format dengan indentasi kustom
python -m json.tool --indent 4 input.json > formatted.json
# Format dari stdin
echo '{"name":"John","age":30}' | python -m json.tool
Menggunakan Node.js
Satu baris cepat:
# Format file JSON
node -e "console.log(JSON.stringify(require('./input.json'), null, 2))"
# Dari string
node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 2))" '{"a":1,"b":2}'
Metode 3: Editor Kode
Visual Studio Code
Pemformat Bawaan:Shift + Alt + F (Windows/Linux)Shift + Option + F (Mac){
"editor.formatOnSave": true,
"editor.tabSize": 2,
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.formatOnSave": true
}
}
Command Palette:
Ctrl + Shift + P (Windows/Linux) atau Cmd + Shift + P (Mac)Sublime Text
Menggunakan Paket:Ctrl + Alt + J untuk memformatVim
Menggunakan bawaan::%!jq .
Atau dengan Python:
:%!python -m json.tool
Metode 4: Bahasa Pemrograman
JavaScript/Node.js
// Format dengan indentasi 2 spasi
const data = {name: "John", age: 30, city: "NYC"};
const formatted = JSON.stringify(data, null, 2);
console.log(formatted);
// Format dari string
const jsonString = '{"name":"John","age":30}';
const parsed = JSON.parse(jsonString);
const pretty = JSON.stringify(parsed, null, 2);
// Baca file dan format
const fs = require('fs');
const rawData = fs.readFileSync('input.json');
const jsonData = JSON.parse(rawData);
const formatted = JSON.stringify(jsonData, null, 2);
fs.writeFileSync('output.json', formatted);
Indentasi Kustom:
// 4 spasi
JSON.stringify(data, null, 4);
// Karakter tab
JSON.stringify(data, null, '\t');
// String kustom
JSON.stringify(data, null, ' ');
Python
import json
# Format dictionary
data = {"name": "John", "age": 30, "city": "NYC"}
formatted = json.dumps(data, indent=2)
print(formatted)
# Format dari string
json_string = '{"name":"John","age":30}'
parsed = json.loads(json_string)
pretty = json.dumps(parsed, indent=2)
# Baca dan format file
with open('input.json', 'r') as f:
data = json.load(f)
with open('output.json', 'w') as f:
json.dump(data, f, indent=2)
# Urutkan kunci secara alfabetis
formatted = json.dumps(data, indent=2, sort_keys=True)
# Pastikan ASCII (escape unicode)
formatted = json.dumps(data, indent=2, ensure_ascii=True)
PHP
<?php
$data = array(
"name" => "John",
"age" => 30,
"city" => "NYC"
);
// Format dengan pretty print
$formatted = json_encode($data, JSON_PRETTY_PRINT);
echo $formatted;
// Opsi tambahan
$formatted = json_encode($data,
JSON_PRETTY_PRINT |
JSON_UNESCAPED_SLASHES |
JSON_UNESCAPED_UNICODE
);
// Baca dan format file
$jsonString = file_get_contents('input.json');
$data = json_decode($jsonString, true);
$formatted = json_encode($data, JSON_PRETTY_PRINT);
file_put_contents('output.json', $formatted);
?>
Java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class JsonFormatter {
public static void main(String[] args) {
// Buat instance Gson dengan pretty printing
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
// Format objek
Person person = new Person("John", 30);
String formatted = gson.toJson(person);
System.out.println(formatted);
// Format dari string
String jsonString = "{\"name\":\"John\",\"age\":30}";
Object obj = gson.fromJson(jsonString, Object.class);
String pretty = gson.toJson(obj);
}
}
C#
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
class Program
{
static void Main()
{
// Format objek
var person = new { Name = "John", Age = 30 };
string formatted = JsonConvert.SerializeObject(person,
Formatting.Indented);
Console.WriteLine(formatted);
// Format dari string
string jsonString = "{\"name\":\"John\",\"age\":30}";
JObject obj = JObject.Parse(jsonString);
string pretty = obj.ToString(Formatting.Indented);
}
}
Metode 5: Browser DevTools
Chrome/Edge DevTools
F12)Atau gunakan Console:
// Format di console
const data = '{"name":"John","age":30}';
console.log(JSON.parse(data));
// Atau
copy(JSON.stringify(JSON.parse(data), null, 2));
// Kemudian tempel JSON yang sudah diformat
Firefox DevTools
Mirip dengan Chrome, dengan pemformatan JSON otomatis di tab Network.
Opsi Pemformatan Tingkat Lanjut
Fungsi Replacer Kustom
const data = {
name: "John",
password: "rahasia123",
age: 30,
createdAt: new Date()
};
// Sembunyikan data sensitif dan format tanggal
const formatted = JSON.stringify(data, (key, value) => {
if (key === 'password') return '';
if (value instanceof Date) return value.toISOString();
return value;
}, 2);
Mengurutkan Kunci
function sortKeys(obj) {
if (typeof obj !== 'object' || obj === null) return obj;
if (Array.isArray(obj)) return obj.map(sortKeys);
return Object.keys(obj)
.sort()
.reduce((sorted, key) => {
sorted[key] = sortKeys(obj[key]);
return sorted;
}, {});
}
const formatted = JSON.stringify(sortKeys(data), null, 2);
Indentasi Kustom
import json
# Lebar indentasi kustom
json.dumps(data, indent=4) # 4 spasi
# Indentasi tab
json.dumps(data, indent='\t')
# Pemisah kustom
json.dumps(data, indent=2, separators=(',', ': '))
Minify vs. Beautify
Kapan Harus Me-minify
Produksi:
- Mengurangi ukuran file
- Transmisi lebih cepat
- Biaya bandwidth lebih rendah
# Minify dengan jq
jq -c . input.json > minified.json
// Minify di JavaScript
JSON.stringify(data); // Tanpa spasi
Kapan Harus Me-beautify
Pengembangan:
- Keterbacaan yang lebih baik
- Debugging lebih mudah
- Peninjauan kode (code review)
Dokumentasi:
- Contoh dalam dokumen
- Templat konfigurasi
Pemformatan Massal (Batch)
Memformat Banyak File
Script Bash:
#!/bin/bash
for file in .json; do
jq . "$file" > "formatted_$file"
done
Script Python:
import json
import os
import glob
for filepath in glob.glob('.json'):
with open(filepath, 'r') as f:
data = json.load(f)
with open(filepath, 'w') as f:
json.dump(data, f, indent=2)
Git Pre-commit Hook
Memformat JSON secara otomatis sebelum commit:
#!/bin/bash
# .git/hooks/pre-commit
for file in $(git diff --cached --name-only | grep -E '\.json$'); do
jq . "$file" > "$file.tmp" && mv "$file.tmp" "$file"
git add "$file"
done
Masalah Pemformatan Umum
Masalah 1: JSON Tidak Valid
Pemformat akan gagal jika JSON tidak valid:
{
"name": "John", // Komentar tidak diperbolehkan
'age': 30, // Kutip tunggal tidak diperbolehkan
"city": "NYC", // Koma di akhir tidak diperbolehkan
}
Solusi: Gunakan validator terlebih dahulu (JSONLint, jq).
Masalah 2: File Besar
File besar dapat membuat pemformat online macet.
Solusi: Gunakan alat baris perintah:jq . large-file.json > formatted.json
Masalah 3: Pengkodean Karakter
Karakter Unicode mungkin ditampilkan secara tidak benar.
Solusi: Pastikan pengkodean UTF-8:with open('file.json', 'r', encoding='utf-8') as f:
data = json.load(f)
Praktik Terbaik
1. Indentasi Konsisten
Pilih 2 atau 4 spasi dan patuhi di seluruh proyek Anda.
2. Panjang Baris
Usahakan baris tetap di bawah 80-120 karakter jika memungkinkan.
3. Kunci Berurutan Abjad
Urutkan kunci secara alfabetis untuk perbandingan yang lebih mudah.
4. Format Sebelum Commit
Selalu format JSON sebelum melakukan commit ke kontrol versi.
5. Gunakan EditorConfig
# .editorconfig
[.json]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
Kesimpulan
Memformat JSON adalah keterampilan dasar bagi pengembang. Baik Anda lebih suka alat online, utilitas baris perintah, atau fitur bawaan bahasa pemrograman, ada metode yang sesuai dengan alur kerja Anda.
Untuk tugas cepat, gunakan pemformat online atau Browser DevTools. Untuk otomatisasi dan file besar, gunakan alat baris perintah seperti jq. Untuk integrasi ke dalam kode Anda, gunakan pustaka JSON khusus bahasa pemrograman.
Ingat: JSON yang diformat lebih mudah dibaca, di-debug, dan dipelihara. Jadikan pemformatan sebagai kebiasaan dalam alur kerja pengembangan Anda.
Artikel Terkait
JavaScript JSON: Parse, Stringify, dan Praktik Terbaik
Panduan lengkap JSON dalam JavaScript. Pelajari JSON.parse(), JSON.stringify(), penanganan kesalahan, dan teknik tingkat lanjut untuk pengembangan web.
Alat Online JSON Terbaik 2026: Viewer, Validator, dan Formatter
Panduan komprehensif tentang alat online JSON terbaik. Bandingkan viewer, validator, formatter, dan konverter untuk bekerja dengan data JSON.
Python dan JSON: Panduan Lengkap Modul json
Kuasai JSON di Python dengan modul json. Pelajari cara mengurai, menghasilkan, dan memanipulasi data JSON dengan contoh praktis dan praktik terbaik.