SyntaxError:JSON.parse:JSON 的第 1 行第 2 列出现意外字符
Posted
技术标签:
【中文标题】SyntaxError:JSON.parse:JSON 的第 1 行第 2 列出现意外字符【英文标题】:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON 【发布时间】:2016-11-19 15:15:35 【问题描述】:我需要将此 div 附加到另一个 div ,但它给了我这个错误:
语法错误:JSON.parse:第 1 行第 2 列出现意外字符 JSON 数据
这是我的 javascript 代码:
var str = 'message': message,'text': text;
$.ajax(
type: "POST",
url: "api/reply",
data: str,
dataType: "json",
cache: false,
success: function(response)
var respons = jQuery.parseJSON(response);
var type = respons.status
if (type == 'success')
$("<div></div>").html(respons.message).appendTo("#messages");
else
toastr.error(respons.message)
)
【问题讨论】:
那不是有效的 JSON。通过 jsonlint.com 运行它来验证它 当您将代码放入 JSBin 时,您会立即发现有一些语法错误。我添加了一个测试 API 端点和一个假输入,以便您可以在那里使用它:jsbin.com/sojibojetu/edit?html,js,output I keep getting "Uncaught SyntaxError: Unexpected token o"的可能重复 【参考方案1】:简单的改变
var respons = jQuery.parseJSON(response);
到
var respons = response;
说明:
如果您的 AJAX 调用配置具有 dataType: json
,您将获得一个 JavaScript 对象,因此不再需要使用 JSON.parse()。
【讨论】:
【参考方案2】:这是解析 JSON 的一种 hackish 和非正统方式,但如果您仍想在 AJAX 调用中使用 JSON.parse()
或只是在已解析且不是字符串的 JSON 上使用,您可以在内部使用 JSON.stringify()
它:
var respons = JSON.parse(JSON.stringify(response));
【讨论】:
你是对的。但我认为没有用例。 我正在通过这个语句调试我的错误。 var respons = JSON.parse(JSON.stringify(response));【参考方案3】:问题是您不是在解析字符串,而是在解析已经解析的对象。
【讨论】:
【参考方案4】:您的对象中的值似乎未定义。
改变
var str = 'message': message,'text': text;
到
var str = message: 'message',text: 'text';
【讨论】:
以上是关于SyntaxError:JSON.parse:JSON 的第 1 行第 2 列出现意外字符的主要内容,如果未能解决你的问题,请参考以下文章
js、javascript : Uncaught SyntaxError: Unexpected token u
SyntaxError:JSON.parse 处的 JSON 输入意外结束 [重复]
在 JSON.parse 的位置 0 处获取“SyntaxError:”JSON 中的意外标记”
SyntaxError:JSON.parse:JSON 的第 1 行第 2 列出现意外字符
SyntaxError:JSON.parse:意外字符在我的控制台中?
我在使用 JSON.parse 时收到“SyntaxError: Unexpected token ' in JSON at position 1”