Saya memiliki larik JavaScript yang antara lain berisi URL. Jika saya mencoba untuk hanya meletakkan URL di halaman (larik tersebut ada di proyek yang melibatkan Yahoo! Maps API), maka URL akan ditampilkan sebagaimana mestinya.
Tetapi jika saya mencoba melakukan redirect atau hanya melakukan 'alert' pada elemen array tautan yang saya dapatkan:
function(){return JSON.encode(this);}
Sejauh yang saya lihat, hal ini karena browser melakukan JSON.encode ketika merender halaman, sehingga tautan ditampilkan OK. Saya telah mencoba beberapa metode untuk membuatnya redirect (itulah yang ingin saya lakukan dengan link) dengan benar (termasuk penggunaan 'eval') tetapi tidak berhasil.
Setelah mengikuti beberapa saran, saya telah menjalankan eval('('(' + jsonObject + ')')
tetapi masih menghasilkan output yang sama.
Jadi bagaimana'ini dilakukan?
Jika Anda mendapatkan teks ini dalam peringatan:
function(){return JSON.encode(this);}
ketika Anda mencoba alert(myArray[i]), maka ada beberapa kemungkinan:
Cara paling sederhana untuk mengetahui adalah dengan memeriksa typeof(myArray[i]).
Penguraian JSON dalam JavaScript hanyalah sebuah eval() jika Anda mempercayai string atau kode yang lebih aman yang dapat Anda temukan di http://json.org jika Anda tidak memercayainya.
Anda kemudian akan memiliki datastruktur JavaScript yang dapat Anda lintasi untuk data yang Anda butuhkan.