Έχω ένα πρόβλημα με την ανάλυση απλών συμβολοσειρών 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']);
Η πηγή του σφάλματός σας, ωστόσο, είναι ότι πρέπει να τοποθετήσετε την πλήρη συμβολοσειρά JSON σε εισαγωγικά. Το παρακάτω θα διορθώσει το δείγμα σας:
<!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>
Όπως ανέφεραν και οι άλλοι ερωτηθέντες, το αντικείμενο έχει ήδη αναλυθεί σε αντικείμενο JS, οπότε δεν χρειάζεται να το αναλύσετε. Για να δείξετε πώς μπορείτε να επιτύχετε το ίδιο πράγμα χωρίς ανάλυση, μπορείτε να κάνετε τα εξής:
<!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>
Το cur_ques_details
είναι ήδη ένα αντικείμενο JS, δεν χρειάζεται να το αναλύσετε