Saya mengalami masalah parsing sederhana JSON string. Saya telah memeriksa mereka pada JSONLint dan itu menunjukkan bahwa mereka adalah sah. Tapi ketika saya mencoba untuk mengurai mereka menggunakan JSON.mengurai
atau jQuery alternatif ini memberi saya error unexpected token
o:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
Catatan: saya'm encoding string saya menggunakan `json_encode () di PHP.
Sumber kesalahan anda, bagaimanapun, adalah bahwa anda perlu untuk menempatkan penuh JSON string dalam tanda kutip. Berikut ini akan memperbaiki anda contoh:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ='{"ques_id":"15","ques_title":"jlkjlkjlkjljl"}';
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
Sebagai responden lainnya telah disebutkan, objek sudah diurai menjadi obyek JS sehingga anda don't perlu untuk mengurai itu. Untuk menunjukkan bagaimana untuk mencapai hal yang sama tanpa parsing, anda dapat melakukan hal-hal berikut:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":"15","ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details.ques_title);
</script>
</body>
</html>
Aku punya masalah yang sama ketika saya menyerahkan data menggunakan jQuery AJAX:
$.ajax({
url:...
success:function(data){
//server response's data is JSON
//I use jQuery's parseJSON method
$.parseJSON(data);//it's ERROR
}
});
Jika respon JSON, dan anda menggunakan metode ini, data yang anda dapatkan adalah objek JavaScript, tetapi jika anda menggunakan dataType:"text"
, data JSON string. Kemudian penggunaan $.parseJSON
baik-baik saja.
Saya melihat ini unexpected token
o kesalahan karena saya (tidak lengkap) kode yang telah berjalan sebelumnya (live reload!) dan set tertentu mengetik penyimpanan lokal nilai untuk [object object]
bukan {}
. Itu't sampai saya mengubah kunci, bahwa hal-hal mulai bekerja seperti yang diharapkan. Atau, anda dapat mengikuti petunjuk ini untuk menghapus salah set localStorage nilai.