Saya mencoba untuk mengulang melalui json array berikut:
{
"id": "1",
"msg": "hi",
"tid": "2013-05-05 23:35",
"fromWho": "[email protected]"
}, {
"id": "2",
"msg": "there",
"tid": "2013-05-05 23:45",
"fromWho": "[email protected]"
}
Dan sudah mencoba yang berikut ini
for (var key in data) {
if (data.hasOwnProperty(key)) {
console.log(data[key].id);
}
}
Tetapi untuk beberapa alasan saya hanya mendapatkan bagian pertama, nilai id 1.
Ada ide?
javascript
json
Alosyius
sumber
sumber
Jawaban:
JSON Anda akan terlihat seperti ini:
Anda dapat mengulang Array seperti ini:
Atau seperti ini (disarankan dari Eric) hati-hati dengan dukungan IE
sumber
json.forEach(function(obj) { console.log(obj.id); });
Ada beberapa masalah dalam kode Anda, pertama json Anda harus terlihat seperti:
Selanjutnya, Anda dapat mengulangi seperti ini:
Dan itu memberikan hasil yang sempurna.
Lihat biola di sini: http://jsfiddle.net/zrSmp/
sumber
Metode forEach untuk implementasi yang mudah.
sumber
coba ini
sumber
Karena saya sudah mulai mencari ke dalamnya:
Dan fungsi ini
Anda bisa menyebutnya seperti ini
Perbarui setelah komentar Erics
Sebagai eric menunjukkan sebuah
for in
loop untuk sebuah array dapat memiliki hasil yang tidak diharapkan . Pertanyaan yang dirujuk memiliki diskusi panjang tentang pro dan kontra.Uji dengan untuk (var ...
Tetapi tampaknya follwing ini cukup hemat:
Meskipun tes di chrome memiliki hasil sebagai berikut
Tes dengan
.forEach()
Setidaknya di chrome 30 ini berfungsi seperti yang diharapkan
Tautan
for in
di mdnfor in
kurang buruksumber
for ... in
loop tidak boleh digunakan untuk arrayfor each
.for ... in ...
adalah konstruksi bahasa untuk enumerasi kunci objek dalam urutan acak. Itu bukan konstruksi yang tepat untuk sebuah array.Ini bekerja. Saya baru saja menambahkan tanda kurung siku ke data JSON. Datanya adalah:
Dan loopnya adalah:
sumber
Ini harus berupa array jika Anda ingin mengulanginya. Anda kemungkinan besar hilang
[
dan]
.Lihat jsfiddle ini: http://jsfiddle.net/lpiepiora/kN7yZ/
sumber
Agak terlambat tapi saya harap saya bisa membantu orang lain: D
json Anda perlu terlihat seperti sesuatu yang sudah dikatakan Niklas. Dan kemudian di sini Anda pergi:
jika Anda memiliki array Multidimensi, ini adalah kode Anda:
sumber
Yah, yang bisa saya lihat di sana adalah bahwa Anda memiliki dua objek JSON, dipisahkan oleh koma. Jika keduanya berada di dalam array (
[...]
) itu akan lebih masuk akal.Dan, jika mereka ADA di dalam array, maka Anda hanya akan menggunakan jenis loop "for var i = 0 ..." standar. Seperti itu, saya pikir itu akan mencoba untuk mengambil properti "id" dari string "1", lalu "id" dari "hai", dan seterusnya.
sumber
Solusi singkat menggunakan
map
dan fungsi panahDan untuk menutup kasus-kasus ketika properti
"id"
tidak ada, gunakanfilter
:sumber
oh my ... mengapa semua orang membuat ini sangat sulit !!?
cuplikan data Anda perlu diperluas sedikit, dan harus dengan cara ini menjadi json yang tepat. perhatikan saya hanya memasukkan atribut array name "item"
skrip java Anda sederhana
sumber