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

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

打开控制台以查看错误


当前回答

Products是一个对象。(从对象字面量创建)

JSON.parse()用于将包含JSON符号的字符串转换为Javascript对象。

您的代码将对象转换为字符串(通过调用. tostring()),以便尝试将其解析为JSON文本。 默认的.toString()返回"[object object]",这不是有效的JSON;因此出现了错误。

其他回答

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

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

唯一的错误是您正在解析一个已经解析过的对象,因此它抛出一个错误。用这个你就可以走了。

Var product = [{ “名称”:“披萨”, “价格”:“10”, “数量”:“7” },{ “名称”:“Cerveja”, “价格”:“12”, “数量”:“5” },{ “名称”:“汉堡”, “价格”:“10”, “数量”:“2” },{ “名称”:“Fraldas”, “价格”:“6”, “数量”:“2” }); console.log(产品[0]. name);//第0个索引项的名称

如果想打印整个JSON内容,请使用JSON.stringify()。

Products是一个对象。(从对象字面量创建)

JSON.parse()用于将包含JSON符号的字符串转换为Javascript对象。

您的代码将对象转换为字符串(通过调用. tostring()),以便尝试将其解析为JSON文本。 默认的.toString()返回"[object object]",这不是有效的JSON;因此出现了错误。

它可能发生的原因有很多,但可能是一个无效的字符,所以你可以使用JSON.stringify(obj);它会将对象转换为JSON,但请记住它是一个jQuery表达式。

您应该在这里验证JSON字符串。

一个有效的JSON字符串必须在键周围有双引号:

JSON.parse({"u1":1000,"u2":1100})       // will be ok

如果没有引号,它将导致一个错误:

JSON.parse({u1:1000,u2:1100})    
// error Uncaught SyntaxError: Unexpected token u in JSON at position 2

使用单引号也会导致错误:

JSON.parse({'u1':1000,'u2':1100})    
// error Uncaught SyntaxError: Unexpected token ' in JSON at position 1