SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

我在使用$.parseJSON解析后台返回的JSON的数据时,出现了这样的错误,我还以为返回的JSON格式出现了错误,因为JSON要求格式非常严格。最后发现JSON格式没有太明显的格式错误,我使用fastJSON来生成的JSON格式数据,原来是因为数据已经是一个JavaScript对象了,所以在进行解析就会出错了

我直接将这段数据alert出来,并使用typeof检验其类型,发现是一个Object,这就证明了数据已成为了JavaScript对象了。所以,我直接使用(不用什么parseJSON解析了)这段数据进行相应的处理就不会出错

   $.ajax({
url : 'commentAction_showComment',
type : 'POST',
data:{
titleid: $(comment_this).attr('data-id'),
currPage : currPage,
},
beforeSend : function (jqXHR, settings) {
$('.comment_list').eq(index).append('<dl class="comment_load"><dd>正在加载评论</dd></dl>');
},
success : function (response, status) {
var json_comment = response;
},
});

也许是我对jQuery的parseJSON方法理解错误使用不当,或者是该用其他的方法处理?

后台响应的是JSON格式的字符串而不是JSON对象

如果后台发送的是一个JSON格式的字符串(注意:是字符串,只是采用JSON的语法格式,不是JSON数据),我们在前台应该怎样解析成一个JSON对象呢?

后台代码:

        PrintWriter out = response.getWriter();
String username = request.getParameter("user");
String password = request.getParameter("pwd");
String data = "{'username':'"+username+"','password':'"+password+"'}";
System.out.println(data);
out.write(data);

这个data就是一个JSON格式的字符串

我们需要将eval()方法将这个字符串包一下,就可以转成JSON对象了,eval应该是一个JavaScript中的方法:

$.ajax({ //一个Ajax过程
type : "post", //以post方式与后台沟通
url : "Ajax_jQueryServlet", //与此php页面沟通
data : 'username=' + username + '&password=' + password,
success : function(data) {
var json = eval('(' + data + ')');
$('#result').html(
"姓名:" + json.username + "<br/>密码:" + json.password);
}
});

注:eval('('+text+')')将JSON格式的字符串text解析为成具体的类型,如boolean什么的,有时可能需要使用eval('['+text+']')  方括号来包裹JSON字符串,可以解析为数组,也就是Object类型。具体使用看情况吧

jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data的更多相关文章

  1. SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data错误的解决

    记录个报错: 问题描述: 经过服务器生成图片返到前台时,在火狐浏览器中下载图片或打开图片时报错:SyntaxError: JSON.parse: unexpected character at lin ...

  2. js - SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data jquery-1.9.1.min.js:3:4315

    FF中时不时报这个错, 就近段做项目来看,  一般是我通过 jquery获取form中的参数(或直接获取参数,并通过ajax进行异步请求的时候,如果有错,就抱该错误! 而对应的, 如果在 Google ...

  3. SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

    在用php返回json数据的时候如果出现这种错误,先检查一下php中是否有使用var_dump()函数 这个函数会在页面输出测试变量的结构,浏览器会将这个当做json数据,所以就报错了....

  4. SyntaxError: JSON.parse: bad control character in string literal at line 1 column 16 of the JSON data

    JSON.parse转化Json字符串时出现:SyntaxError: JSON.parse: bad control character in string literal at line 1 co ...

  5. json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 column 33 (char 33)

    json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 colu ...

  6. SyntaxError: unexpected character after line continuation character

    SyntaxError: unexpected character after line continuation character 待解决问题:在运行.py文件时报错SyntaxError: un ...

  7. SSH框架-unexpected token: * near line 1, column 8 [select * from tb_chaper where course_id = 2];报错解决方法

    SSH项目,访问jsp页面出现报错,控制台显示报错信息: org.springframework.orm.hibernate3.HibernateQueryException: unexpected ...

  8. Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "</url-pattern>" 终止

    1.错误描述 严重: Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "< ...

  9. 浏览器报错 SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 2 of the JSON data

    ajax调用是200,结果返回的不是json字符串(字符串格式不是json应该有的格式),进入了ajax的error回调函数,改为返回json字符串,问题解决了.

随机推荐

  1. 回溯和DFS效率分析

    回溯和DFS效率分析 一.心得 多组数据记得初始化 两组样例,找圆点点的个数 6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# . ...

  2. python学习笔记(excel简单操作)

    现在的目标是设计一个接口自动化测试框架 用例写在excel里面 利用python自带的pyunit构建 之前已经安装好了处理excel的模块 这次简单的使用下 提前创建好excel文件 “testca ...

  3. python学习笔记(异常处理)

    上次提到正则表达式 当未匹配到数据返回值 None 再使用 match.group 会出现异常 AttributeError 为了避免异常我改成“ match != None” 这次加入异常处理 #! ...

  4. shiro源码解析--------欢迎指出错误地方,还有一起讨论一下ShiroFilterFactoryBean配置过滤URL规则

    啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 啦啦啦啦啦 ...

  5. C# 构造函数调用顺序

    了解C#的一个类的加载过程,对于语言机制的理解和写出高效的语言很有帮助,这里简单介绍一下类的实例的构造函数调用过程.C#类的实例的构造过程是,先为实例的数据字段分配内存,并对所有字段按字节置零(0或者 ...

  6. 最新Mysql5.7安装教程

    可以从MSQL官网下载MySQL服务器安装软件包,我下载为版本“mysql-installer-community-5.7.3.0-m13.msi”不多说 方法/步骤   1 双击进入安装,如下图: ...

  7. ARM汇编指令集3

    常用ARM指令1:数据处理指令 •数据传输指令  mov mvn       mov r1,  r0        @两个寄存器之间数据传递       mov       r1,  #0xff   ...

  8. python基础之网络基础

    一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...

  9. Ubuntu和Windows文件Samba共享

    1.在Ubuntu下配置Samba共享文件夹/work和/work1 1.1.安装samba sudo apt-get install samba

  10. java svnkit实现svn提交,更新等操作

    官网:https://svnkit.com/ api:https://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html w ...