所以,我的JSON响应是一个简单的数组:
[35,55]
Chrome网络检查员将其显示为有效的JSON。但是,当我在xhr.responseText上使用JSON.parse时,它会给出错误:Uncaught SyntaxError: Unexpected token :
我尝试过使用JSON.stringify并且只使用它而不在JSON.parse中解析它,但是它不会被JS视为数组。
JSONLint说它也是有效的JSON。
我不知道该怎么做,我只想在JS中使用我的xhr数组作为数组。
答案 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两次。