控制台使用Array抛出JSON.parse错误

时间:2013-08-17 08:36:18

标签: javascript ajax json xmlhttprequest

所以,我的JSON响应是一个简单的数组:

[35,55]

Chrome网络检查员将其显示为有效的JSON。但是,当我在xhr.responseText上使用JSON.parse时,它会给出错误:Uncaught SyntaxError: Unexpected token :

我尝试过使用JSON.stringify并且只使用它而不在JSON.parse中解析它,但是它不会被JS视为数组。

JSONLint说它也是有效的JSON。

我不知道该怎么做,我只想在JS中使用我的xhr数组作为数组。

3 个答案:

答案 0 :(得分:0)

在使用我的应用时,我遇到了两次此错误。当然,我有一个复杂的Json而不是你的简单。以下是两种情况。请检查它们是否与您的情况相符。     一个。正如我所说我使用的是复杂的json,我错过了使用“,”而有时我使用花括号来定义数组。     湾我不得不用一个类确认js对象。我的json比课堂还多2个额外值。所以它无法解析它。 希望这段经历有所帮助!

答案 1 :(得分:0)

问题在于我使用JSON.parse将已经被JSON.parse解析的变量传递给存储变量,这导致了错误。

这是我做错了的一个例子:

var currentJSON = JSON.parse(xhr.responseText);
var oldJSON = [];
if (currentJSON) {
    /* do stuff with currentJSON, like compare currentJSON with oldJSON */
    oldJSON = JSON.parse(currentJSON); /* <- THIS is what caused the issue */
}

这是我应该做的:

var currentJSON = JSON.parse(xhr.responseText);
var oldJSON = [];
if (currentJSON) {
    /* do stuff with currentJSON, like compare currentJSON with oldJSON */
    oldJSON = currentJSON; /* <- removed JSON.parse(); from currentJSON */
}

答案 2 :(得分:0)

问题结果是我正在解析JSON两次。