javascript - Parsning av JSON gir feilen "uventet token o"
Jeg har et problem med å analysere enkle JSON-strenger. Jeg har sjekket dem på JSONLint, og det viser at de er gyldige. Men når jeg prøver å analysere dem ved hjelp av enten JSON.parse eller jQuery-alternativet, får jeg feilen 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>
Merk: Jeg koder strengene mine ved å bruke json_encode() i PHP.
Svar #1
Dataene dine er allerede et objekt. Ingen grunn til å analysere det. JavaScript-tolken har allerede analysert det for deg.
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
Svar #2
Prøv å parse slik:
var yourval = jQuery.parseJSON(JSON.stringify(data));
Svar #3
Bruke JSON.stringify(data);:
$.ajax({
url: ...
success:function(data){
JSON.stringify(data); //to string
alert(data.you_value); //to view you pop up
}
});
Svar #4
Kilden til feilen din er imidlertid at du må plassere hele JSON-strengen i anførselstegn. Følgende vil fikse eksemplet ditt:
<!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>
Som de andre respondentene har nevnt, er objektet allerede analysert til et JS-objekt, så du trenger ikke å analysere det. For å demonstrere hvordan du kan oppnå det samme uten å analysere, kan du gjøre følgende:
<!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>
Svar #5
cur_ques_details er allerede et JS-objekt, du trenger ikke å analysere det
