我在运行下面的代码时收到此错误: SyntaxError: JSON.parse: unexpected character data = JSON.parse(data);
当我运行 console.log(data); 它说数据未定义。
console.log(data);
data = JSON.parse(data);
有人知道如何解决错误问题吗?
我在运行下面的代码时收到此错误: SyntaxError: JSON.parse: unexpected character data = JSON.parse(data);
当我运行 console.log(data); 它说数据未定义。
console.log(data);
data = JSON.parse(data);
有人知道如何解决错误问题吗?
这可能会有所帮助:
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/
数据未定义。这就是 JSON.parse 抛出错误的原因。因此,调查“数据”的价值是什么。
实际上 JSON.parse() 方法的语法是JavaScriptObject JSON.parse(String)
. 这意味着 JSON.parse() 方法将有效的 JSON 字符串作为参数并返回一个 JavascriptObject。如果作为参数传递的字符串不是有效的 JSON 字符串,那么它将引发错误。因此,首先您必须将有效的 JSON 字符串作为参数传递给该JSON.parse()
方法。
如果您可以将空/未定义数据视为空 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()
就不会失败。