-1

我在运行下面的代码时收到此错误: SyntaxError: JSON.parse: unexpected character data = JSON.parse(data);

当我运行 console.log(data); 它说数据未定义。

console.log(data);
data = JSON.parse(data);

有人知道如何解决错误问题吗?

4

4 回答 4

0

这可能会有所帮助:

var key = $(this).attr("track_id");
$("#track_info div[data-role=header] h1").text(key);

var data = window.localStorage.getItem(key);

console.log(data); /* The output here may indicate the problem */
                   /* valid JSON should be a string like 
                          "{ \"propName\":\"propValue\" , ...}"
                   */

try{
    data = JSON.parse(data);
}
catch(e){
    console.log(e);
}

但是如果不了解更多关于您的代码的信息,就很难提供帮助……您在使用 jQuery 吗?( $(...) 也可以被其他库使用。)

有关 JSON 的更多示例,请参阅http://en.wikipedia.org/wiki/JSON,以及一个很好的概述。还有http://www.json.org/

于 2013-08-19T10:10:32.863 回答
0

数据未定义。这就是 JSON.parse 抛出错误的原因。因此,调查“数据”的价值是什么。

于 2013-08-19T08:44:11.733 回答
0

实际上 JSON.parse() 方法的语法是JavaScriptObject JSON.parse(String). 这意味着 JSON.parse() 方法将有效的 JSON 字符串作为参数并返回一个 JavascriptObject。如果作为参数传递的字符串不是有效的 JSON 字符串,那么它将引发错误。因此,首先您必须将有效的 JSON 字符串作为参数传递给该JSON.parse()方法。

于 2013-08-19T08:41:47.093 回答
0

如果您可以将空/未定义数据视为空 json 对象,请尝试以下操作:

var key = $(this).attr("track_id"); 
$("#track_info div[data-role=header] h1").text(key); 
var data = window.localStorage.getItem(key); 

if (data == undefined || data == null || data == "")
{
    data = 'null';
}
else
{
    console.log(data);
}

data = JSON.parse(data);
console.log(data);

使用data = 'null';我创建了 null json 对象,这样JSON.parse()就不会失败。

于 2013-08-19T09:57:10.360 回答