Saya punya objek json yang dikembalikan oleh permintaan AJAX dan saya mengalami beberapa masalah dengan .length
karena itu terus kembali undefined
. Hanya ingin tahu apakah saya menggunakannya dengan benar:
console.log(data.length);
console.log(data.phones.length);
Mereka berdua kembali undefined
meskipun mereka adalah objek yang valid.
Pembaruan:
Contoh objek JSON yang dikembalikan:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
javascript
json
nkcmr
sumber
sumber
Jawaban:
Anda dapat menggunakan sesuatu seperti ini
sumber
Masalah Anda adalah objek ponsel Anda tidak memiliki properti panjang (kecuali jika Anda mendefinisikannya di suatu tempat di JSON yang Anda kembalikan) sebagai objek tidak sama dengan array, bahkan ketika digunakan sebagai array asosiatif. Jika objek ponsel adalah array, ia akan memiliki panjang. Anda memiliki dua opsi (mungkin lebih).
Ubah struktur JSON Anda (dengan asumsi ini mungkin) sehingga 'ponsel' menjadi
(perhatikan tidak ada pengidentifikasi nomor-kata untuk setiap telepon karena dikembalikan dalam array berindeks 0). Dalam tanggapan ini
phones.length
akan valid.Iterasi melalui objek yang ada dalam objek ponsel Anda dan hitung saat Anda pergi, misalnya
Jika Anda hanya menargetkan peramban baru, opsi 2 dapat terlihat seperti ini
sumber
Pertimbangkan untuk menggunakan underscore.js . Ini akan memungkinkan Anda untuk memeriksa ukurannya yaitu seperti itu:
sumber
Anda tidak perlu mengubah format JSON Anda.
menggantikan:
dengan:
sumber
sumber
coba ini
sumber
gunakan yang ini
atau
sumber
sumber
TechnologyId
properti