Parsing JSON memberikan "tak terduga token o" kesalahan

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 tokeno:

<!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.

Mengomentari pertanyaan (1)
Larutan

Data anda sudah objek. Tidak perlu untuk mengurai itu. Javascript penerjemah telah diurai untuk anda.

var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
Komentar (7)

Mencoba mengurai sehingga:

var yourval = jQuery.parseJSON(JSON.stringify(data));
Komentar (3)

Menggunakan JSON.stringify(data);:

$.ajax({
    url: ...
    success:function(data){
        JSON.stringify(data); //to string
        alert(data.you_value); //to view you pop up
    }
});
Komentar (1)

Sumber kesalahan anda, bagaimanapun, adalah bahwa anda perlu untuk menempatkan penuh JSON string dalam tanda kutip. Berikut ini akan memperbaiki anda contoh:






        <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>

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:






        <script type="text/javascript">
            var cur_ques_details ={"ques_id":"15","ques_title":"jlkjlkjlkjljl"};
            document.write(cur_ques_details.ques_title);
        </script>

Komentar (0)

cur_ques_details sudah JS objek, anda don't perlu mengurai

Komentar (2)

Respon yang sudah diuraikan, anda don't perlu mengurai lagi. jika anda mengurai lagi itu akan memberi anda "unexpected tokeno". jika anda perlu untuk mendapatkan itu sebagai string, anda bisa menggunakan JSON.stringify()

Komentar (0)

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.

Komentar (0)

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.

Komentar (1)