是什么导致了第三行上的错误?
Var product = [{ “名称”:“披萨”, “价格”:“10”, “数量”:“7” },{ “名称”:“Cerveja”, “价格”:“12”, “数量”:“5” },{ “名称”:“汉堡”, “价格”:“10”, “数量”:“2” },{ “名称”:“Fraldas”, “价格”:“6”, “数量”:“2” }); console.log(产品); var b = JSON.parse(products);//意外令牌o
打开控制台以查看错误
是什么导致了第三行上的错误?
Var product = [{ “名称”:“披萨”, “价格”:“10”, “数量”:“7” },{ “名称”:“Cerveja”, “价格”:“12”, “数量”:“5” },{ “名称”:“汉堡”, “价格”:“10”, “数量”:“2” },{ “名称”:“Fraldas”, “价格”:“6”, “数量”:“2” }); console.log(产品); var b = JSON.parse(products);//意外令牌o
打开控制台以查看错误
当前回答
唯一的错误是您正在解析一个已经解析过的对象,因此它抛出一个错误。用这个你就可以走了。
Var product = [{ “名称”:“披萨”, “价格”:“10”, “数量”:“7” },{ “名称”:“Cerveja”, “价格”:“12”, “数量”:“5” },{ “名称”:“汉堡”, “价格”:“10”, “数量”:“2” },{ “名称”:“Fraldas”, “价格”:“6”, “数量”:“2” }); console.log(产品[0]. name);//第0个索引项的名称
如果想打印整个JSON内容,请使用JSON.stringify()。
其他回答
在调用JSON.parse()时,另一个可能导致“SyntaxError: Unexpected token”异常的问题是在字符串值中使用以下任何一种:
新行字符。 制表符(是的,可以用Tab键生成的制表符!) 任何独立的斜杠\(但出于某种原因不是/,至少在Chrome上不是)。
(完整列表请参见这里的字符串部分。)
例如,下面的代码会让你得到这个异常:
{
"msg" : {
"message": "It cannot
contain a new-line",
"description": "Some discription with a tabbed space is also bad",
"value": "It cannot have 3\4 un-escaped"
}
}
所以应该改为:
{
"msg" : {
"message": "It cannot\ncontain a new-line",
"description": "Some discription with a\t\ttabbed space",
"value": "It cannot have 3\\4 un-escaped"
}
}
我应该说,这使得它在json格式和大量文本中非常不可读。
Products是一个数组,可以直接使用:
var i, j;
for(i=0; i<products.length; i++)
for(j in products[i])
console.log("property name: " + j, "value: " + products[i][j]);
使用eval。它将JavaScript表达式/代码作为字符串,并计算/执行它。
eval(inputString);
它可能发生的原因有很多,但可能是一个无效的字符,所以你可以使用JSON.stringify(obj);它会将对象转换为JSON,但请记住它是一个jQuery表达式。
products = [{"name":"Pizza","price":"10","quantity":"7"}, {"name":"Cerveja","price":"12","quantity":"5"}, {"name":"Hamburguer","price":"10","quantity":"2"}, {"name":"Fraldas","price":"6","quantity":"2"}];
改变
products = '[{"name":"Pizza","price":"10","quantity":"7"}, {"name":"Cerveja","price":"12","quantity":"5"}, {"name":"Hamburguer","price":"10","quantity":"2"}, {"name":"Fraldas","price":"6","quantity":"2"}]';