Ανάλυση JSON που δίνει "απροσδόκητο σύμβολο o" σφάλμα

Έχω ένα πρόβλημα με την ανάλυση απλών συμβολοσειρών JSON. Τις έχω ελέγξει στο JSONLint και δείχνει ότι είναι έγκυρες. Αλλά όταν προσπαθώ να τα αναλύσω χρησιμοποιώντας είτε το JSON.parse είτε την εναλλακτική jQuery, μου δίνει το σφάλμα 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>

Σημείωση: κωδικοποιώ τις συμβολοσειρές μου χρησιμοποιώντας την json_encode() στην PHP.

Λύση

Τα δεδομένα σας είναι ήδη ένα αντικείμενο. Δεν χρειάζεται να το αναλύσετε. Ο διερμηνέας javascript το έχει ήδη αναλύσει για εσάς.

var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
Σχόλια (7)

Η πηγή του σφάλματός σας, ωστόσο, είναι ότι πρέπει να τοποθετήσετε την πλήρη συμβολοσειρά JSON σε εισαγωγικά. Το παρακάτω θα διορθώσει το δείγμα σας:






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

Όπως ανέφεραν και οι άλλοι ερωτηθέντες, το αντικείμενο έχει ήδη αναλυθεί σε αντικείμενο JS, οπότε δεν χρειάζεται να το αναλύσετε. Για να δείξετε πώς μπορείτε να επιτύχετε το ίδιο πράγμα χωρίς ανάλυση, μπορείτε να κάνετε τα εξής:






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

Σχόλια (0)

Το cur_ques_details είναι ήδη ένα αντικείμενο JS, δεν χρειάζεται να το αναλύσετε

Σχόλια (2)