是什么导致了第三行上的错误?
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
打开控制台以查看错误
当前回答
我发现同样的问题与JSON.parse(inputString)。
在我的例子中,输入字符串来自我的服务器页面(返回一个页面方法)。
我打印了typeof(inputString) -它是字符串,但仍然发生错误。
我还尝试了JSON.stringify(inputString),但它没有帮助。
后来我发现这是一个问题与新的行操作符[\n],在一个字段值。
我做了一个替换(与一些其他字符,把新的行返回解析后),一切都很好。
其他回答
我的问题是,我通过Ajax在PHP回调函数中注释了HTML,该函数正在解析注释并返回无效的JSON。
一旦我删除了带注释的HTML,一切都很好,JSON被解析没有任何问题。
使用eval。它将JavaScript表达式/代码作为字符串,并计算/执行它。
eval(inputString);
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]);
似乎您想要对对象进行字符串化,而不是解析。所以这样做:
JSON.stringify(products);
错误的原因是JSON.parse()期望一个String值,而products是一个Array。
注意:我认为它尝试json。parse('[object Array]'),它会抱怨在[后面没有token o。
JSON。parse在参数中等待一个字符串。您需要对JSON对象进行字符串化来解决这个问题。
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"}];
console.log(products);
var b = JSON.parse(JSON.stringify(products)); //solves the problem