Saya perhatikan urutan elemen dalam objek JSON bukan urutan aslinya.
Bagaimana dengan elemen daftar JSON? Apakah pesanan mereka dipertahankan?
javascript
arrays
json
list
pengguna437899
sumber
sumber
Urutan elemen dalam array (
[]
) dipertahankan. Urutan elemen (nama: pasangan nilai) dalam "objek" ({}
) tidak, dan itu biasa bagi mereka untuk menjadi "campur aduk", jika bukan oleh formatter / parser JSON itu sendiri maka oleh objek-objek khusus bahasa (Kamus, NSDictionary, Hashtable, dll) yang digunakan sebagai representasi internal.sumber
Secara praktis, jika kunci adalah tipe NaN, browser tidak akan mengubah urutan.
Script berikut akan menampilkan "Satu", "Dua", "Tiga":
Sedangkan skrip berikut akan menampilkan "Tiga", "Satu", "Dua":
sumber
Beberapa mesin JavaScript menyimpan kunci dalam urutan penyisipan. V8, misalnya, menjaga semua kunci dalam urutan penyisipan kecuali untuk kunci yang dapat diuraikan sebagai bilangan bulat 32-bit yang tidak ditandatangani .
Ini berarti bahwa jika Anda menjalankan salah satu dari berikut ini:
Anda akan secara konsisten mendapatkan anjing , beruang , dan monyet dalam urutan itu, di Chrome, yang menggunakan V8. Node.js juga menggunakan V8. Ini akan berlaku bahkan jika Anda memiliki ribuan item. YMMV dengan mesin JavaScript lainnya.
Demo di sini dan di sini .
sumber
"Apakah urutan elemen dalam daftar JSON dipertahankan?" bukan pertanyaan yang bagus. Anda perlu bertanya "Apakah urutan elemen dalam daftar JSON dipertahankan saat melakukan [...]?" Seperti yang Felix King tunjukkan, JSON adalah format data tekstual. Itu tidak bermutasi tanpa alasan. Jangan bingung string JSON dengan objek (JavaScript).
Anda mungkin berbicara tentang operasi
JSON.stringify(JSON.parse(...))
. Sekarang jawabannya adalah: Itu tergantung pada implementasinya. 99% * dari parser JSON tidak mempertahankan urutan objek, dan mempertahankan urutan array, tetapi Anda mungkin juga menggunakan JSON untuk menyimpan sesuatu sepertidan menggunakan parser yang mempertahankan urutan objek.
* mungkin lebih :)
sumber