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

  1. Tempel JSON ke panel kiri, muat contoh, atau impor file .json
  2. Pilih mode pengurutan kunci atau array, lalu tentukan arah dan opsi rekursif
  3. Jalankan pengurutan dan periksa hasilnya di panel kanan
  4. 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

python
import 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

SkenarioDiurutkan berdasarkanMetode yang disarankanAlat
Mengurangi noise Git DiffKunci objekSortir kunci rekursifAlat ini / jq -S
Normalisasi konfigurasiKunci objekNaik + rekursifAlat ini
Menstabilkan cache key APIKunci objekUrutkan lalu stringifyAlat ini / contoh kode
Merapikan data array cepatElemen arrayMode arrayAlat ini

Perbedaan sort, diff, dan merge JSON

AlatTujuanYang dirapikanLangkah berikutnya
Urutkan JSONMenyamakan urutanKunci / arrayDiff, format
JSON DiffMembandingkan perubahanTidak adaLebih baik setelah sort
JSON MergeMenggabungkan banyak sumberBila perlu setelah mergeSort setelah merge
JSON RepairMemperbaiki JSON tidak validTidak adaSort setelah perbaikan

Authoritative References