是什么导致了第三行上的错误?

Var product = [{ “名称”:“披萨”, “价格”:“10”, “数量”:“7” },{ “名称”:“Cerveja”, “价格”:“12”, “数量”:“5” },{ “名称”:“汉堡”, “价格”:“10”, “数量”:“2” },{ “名称”:“Fraldas”, “价格”:“6”, “数量”:“2” }); console.log(产品); var b = JSON.parse(products);//意外令牌o

打开控制台以查看错误


当前回答

当您使用POST或PUT方法时,请确保对主体部分进行了字符串化。

我在这里记录了一个例子 https://gist.github.com/manju16832003/4a92a2be693a8fda7ca84b58b8fa7154

其他回答

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"}]';

为什么需要JSON.parse?它已经是对象数组格式了。

最好使用JSON。Stringify如下所示:

var b = JSON.stringify(产品);

似乎您想要对对象进行字符串化,而不是解析。所以这样做:

JSON.stringify(products);

错误的原因是JSON.parse()期望一个String值,而products是一个Array。

注意:我认为它尝试json。parse('[object Array]'),它会抱怨在[后面没有token o。

在我的情况下,在我的JSON字符串中有以下字符问题:

r \ \ t \ r \ n \ n : "

我用其他字符或符号替换了它们,然后又从编码中恢复过来。

我发现同样的问题与JSON.parse(inputString)。

在我的例子中,输入字符串来自我的服务器页面(返回一个页面方法)。

我打印了typeof(inputString) -它是字符串,但仍然发生错误。

我还尝试了JSON.stringify(inputString),但它没有帮助。

后来我发现这是一个问题与新的行操作符[\n],在一个字段值。

我做了一个替换(与一些其他字符,把新的行返回解析后),一切都很好。