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

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

打开控制台以查看错误


当前回答

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.parse(inputString)。

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

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

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

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

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

[
  {
    "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内容。

我的问题是,我通过Ajax在PHP回调函数中注释了HTML,该函数正在解析注释并返回无效的JSON。

一旦我删除了带注释的HTML,一切都很好,JSON被解析没有任何问题。

如果有前导空格或尾随空格,则无效。 后面和前面的空格可以被删除为

mystring = mystring.replace(/^\s+|\s+$/g, "");

删除字符串的前导或尾随空格