我在解析简单的JSON字符串时遇到了问题。我已经在JSONLint上检查了它们,它显示它们是有效的。但当我试图用JSON解析它们时。解析或jQuery的替代方案,它给我错误的意外令牌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>

注意:我在PHP中使用json_encode()编码我的字符串。


当前回答

我看到这个意外的标记错误,因为我(不完整)的代码之前运行(实时重新加载!),并设置特定的本地存储值为[object object]而不是{}。直到我换了钥匙,一切才开始正常工作。或者,您可以按照以下说明删除不正确设置的localStorage值。

其他回答

我看到这个意外的标记错误,因为我(不完整)的代码之前运行(实时重新加载!),并设置特定的本地存储值为[object object]而不是{}。直到我换了钥匙,一切才开始正常工作。或者,您可以按照以下说明删除不正确设置的localStorage值。

试着这样解析:

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

使用JSON.stringify(数据),:

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

当我使用jQuery AJAX提交数据时,我也有同样的问题:

$.ajax({
   url:...
   success:function(data){
      //server response's data is JSON
      //I use jQuery's parseJSON method 
      $.parseJSON(data);//it's ERROR
   }
});

如果响应是JSON,并且使用此方法,则得到的数据是JavaScript对象,但如果使用dataType:"text",则数据是JSON字符串。然后使用$。parseJSON是好的。

响应已经解析,您不需要再次解析它。如果你再次解析它,它会给你“意想不到的token o”。如果你需要获取字符串,你可以使用JSON.stringify()