Urutkan JSON
Rapikan urutan kunci objek JSON dan elemen array agar data lebih mudah dibaca, dibandingkan, dan disimpan secara konsisten. Semua proses berjalan lokal di browser.
Rekomendasi Terkait
Apa itu pengurutan JSON?
Pengurutan JSON berarti menyusun ulang kunci objek ke urutan tertentu atau mengurutkan elemen array berdasarkan nilainya. Operasi ini tidak mengubah isi data maupun tipenya, hanya urutannya saja.
Normalisasi seperti ini membantu mengurangi noise di Git Diff, menyeragamkan file konfigurasi, menyiapkan data sebelum JSON Diff, dan membuat kunci cache API lebih stabil. JSON yang sama tidak lagi tampak berubah hanya karena urutan kuncinya berbeda.
Alat GeekFormat mendukung dua mode: pengurutan kunci dan pengurutan array, ditambah opsi naik/turun dan pengurutan rekursif. Data Anda tidak dikirim ke server.
Kasus penggunaan
- Menyamakan urutan kunci pada package.json, tsconfig.json, dan file konfigurasi lain
- Mengurutkan dua JSON sebelum dibandingkan agar perbedaan palsu karena urutan bisa hilang
- Menstabilkan urutan kunci dalam respons API untuk cache, hash, dan snapshot
- Merapikan file JSON besar sebelum code review atau audit konfigurasi
- Menyiapkan hasil setelah merge atau repair untuk validasi lanjutan
Cara Penggunaan
- Tempel JSON ke panel kiri, muat contoh, atau impor file .json
- Pilih mode pengurutan kunci atau array, lalu tentukan arah dan opsi rekursif
- Jalankan pengurutan dan periksa hasilnya di panel kanan
- Salin hasilnya atau unduh sebagai sorted.json
Fitur
- Dua mode: urutkan kunci objek atau elemen array
- Dukungan rekursif: urutan juga dirapikan di dalam objek yang bersarang
- Naik dan turun: mudah mengganti arah pengurutan
- Struktur tetap aman: nilai dan tipe data tidak diubah
- Privasi lokal: JSON diproses di browser tanpa dikirim ke server
- Mudah diteruskan: hasil bisa langsung dipakai di JSON Diff, Repair, atau Format
Contoh Kode
Mengurutkan kunci secara rekursif dengan JavaScript
javascript// Mengurutkan kunci secara rekursif dan mengembalikan objek baru
function sortKeysDeep(value) {
if (Array.isArray(value)) return value.map(sortKeysDeep);
if (value !== null && typeof value === 'object') {
return Object.keys(value)
.sort((a, b) => a.localeCompare(b))
.reduce((acc, k) => {
acc[k] = sortKeysDeep(value[k]);
return acc;
}, {});
}
return value;
}
const data = { zoo: { animals: ['zebra', 'elephant'] }, alpha: 1, beta: 2 };
console.log(JSON.stringify(sortKeysDeep(data), null, 2));Menggunakan sort_keys=True di Python
pythonimport json
data = {"zoo": {"animals": ["zebra", "elephant"]}, "alpha": 1, "beta": 2}
print(json.dumps(data, indent=2, sort_keys=True, ensure_ascii=False))
arr = [3, 1, 4, 1, 5]
print(sorted(arr))
print(sorted(arr, reverse=True))Mengurutkan JSON dengan jq
bash# Urutkan kunci secara rekursif jq -S '.' data.json # Urutkan elemen array jq 'sort' data.json # Urutkan berdasarkan field tertentu jq 'sort_by(.age)' data.json
Pertanyaan Umum
Apa bedanya pengurutan JSON dengan format JSON?
Format hanya mengubah indentasi dan baris baru, sedangkan pengurutan JSON mengubah urutan kunci dan elemen array. Menggunakan keduanya bersama-sama membuat JSON rapi sekaligus mudah dibaca.
Apakah JSON menjadi lebih besar setelah diurutkan?
Hampir tidak. Jumlah datanya tetap sama, yang berubah hanya urutan field dan elemennya.
Apakah nilai atau tipenya ikut berubah?
Tidak. `null`, angka, string, boolean, objek, dan array tetap persis sama.
Apa yang dimaksud dengan pengurutan rekursif?
Itu berarti pengurutan diterapkan bukan hanya ke objek terluar, tetapi juga ke semua objek di dalamnya. Untuk konfigurasi dan respons API, biasanya sebaiknya tetap diaktifkan.
Mengapa kunci yang terlihat seperti bilangan bulat selalu berada di depan?
JavaScript memperlakukan kunci seperti `0`, `1`, `2` dalam urutan numerik. Ini perilaku platform, bukan bug alat.
Bagaimana objek di dalam array diurutkan?
Mode array memakai perbandingan umum atas representasi teks. Jika ingin berdasarkan field seperti `price` atau `date`, gunakan `sort_by(.field)`.
Apakah JSON saya diunggah ke server?
Tidak. Semua operasi berjalan lokal di browser, jadi cocok juga untuk data sensitif.
Urutan terbaik jika dipakai bersama JSON Diff atau Schema apa?
Biasanya paling nyaman memakai alur JSON Repair → Urutkan JSON → JSON Diff / Format → validasi Schema. Urutkan dulu agar noise perbandingan berkurang.
Pemecahan Masalah
Muncul error Invalid JSON
Kemungkinan ada kesalahan sintaks pada JSON masukan. Periksa dulu dengan JSON Repair atau JSON Format.
Kunci yang mirip angka selalu muncul di atas
JavaScript memproses kunci yang terlihat seperti bilangan bulat dalam urutan numerik. Ini perilaku platform, bukan bug alat.
Objek di dalam array tidak terurut seperti yang saya mau
Mode array tidak mengetahui arti field bisnis dan melakukan perbandingan umum. Untuk `price` atau `date`, gunakan `sort_by`.
Objek bersarang tidak ikut diurutkan
Pastikan opsi rekursif aktif. Jika tidak, alat hanya mengurutkan level teratas.
JSON sangat besar membuat browser lambat
File besar sebaiknya diproses dulu secara lokal dengan `jq`, Python, atau Node.js lalu hasilnya baru diverifikasi di browser.
Glosarium
- JSON Sort
- Operasi yang hanya mengubah urutan kunci atau elemen array tanpa menyentuh nilai dan tipe data.
- Recursive Sort
- Pengurutan yang diterapkan bukan hanya di level teratas, tetapi juga ke semua objek bersarang.
- Ascending / Descending
- Naik berarti A-Z atau dari kecil ke besar, turun berarti kebalikannya.
- Canonical Form
- Representasi JSON yang sudah dinormalisasi agar nyaman dipakai untuk perbandingan, cache, dan hash.
- Git Diff Noise
- Baris diff yang tidak perlu karena perbedaan urutan atau format, bukan perubahan data nyata.
- localeCompare
- API pembanding string di JavaScript yang sering dipakai untuk mengurutkan nama kunci.
Kapan pengurutan JSON paling berguna
| Skenario | Diurutkan berdasarkan | Metode yang disarankan | Alat |
|---|---|---|---|
| Mengurangi noise Git Diff | Kunci objek | Sortir kunci rekursif | Alat ini / jq -S |
| Normalisasi konfigurasi | Kunci objek | Naik + rekursif | Alat ini |
| Menstabilkan cache key API | Kunci objek | Urutkan lalu stringify | Alat ini / contoh kode |
| Merapikan data array cepat | Elemen array | Mode array | Alat ini |
Perbedaan sort, diff, dan merge JSON
| Alat | Tujuan | Yang dirapikan | Langkah berikutnya |
|---|---|---|---|
| Urutkan JSON | Menyamakan urutan | Kunci / array | Diff, format |
| JSON Diff | Membandingkan perubahan | Tidak ada | Lebih baik setelah sort |
| JSON Merge | Menggabungkan banyak sumber | Bila perlu setelah merge | Sort setelah merge |
| JSON Repair | Memperbaiki JSON tidak valid | Tidak ada | Sort setelah perbaikan |
Authoritative References
- Kompres JSON
- CSV ke JSON
- JSON ke CSV
- JSON Diff
- JSON Escape / Unescape
- Meratakan JSON
- Pemformat JSON
- Generator JSON
- Kueri JSONPath
- Penggabungan JSON
- Perbaikan JSON
- Validator Skema JSON
- Urutkan JSON
- JSON Stringify
- JSON ke HTML
- JSON ke Java
- JSON ke Markdown
- JSON ke SQL
- JSON ke TOML
- JSON ke TypeScript
- XML ke JSON
- Ubah JSON ke XML
- YAML ke JSON
- JSON → YAML
- JSON ke Python
- JSON ke Go
- JSON ke Rust
- JSON ke Swift
- JSON ke C#
- JSON ke C++
- JSON ke PHP