Uncaught SyntaxError:带有JSON.parse的意外标记

什么原因导致第三行出现此错误?


var 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(products); //unexpected token o

打开控制台以查看错误



阿晨1998
浏览 1009回答 3
3回答

肥皂起泡泡

products是一个对象。(从对象文字创建)JSON.parse()用于将包含JSON表示法的字符串转换为Javascript对象。您的代码将对象转换为字符串(通过调用.toString()),以尝试将其解析为JSON文本。默认.toString()返回"[object Object]",这是无效的JSON; 因此错误。

三国纷争

看来你想要对对象进行字符串化。这样做:JSON.stringify(products);究其原因,错误是JSON.parse()需要一个String值,products是一个Array。注:我认为它会尝试json.parse('[object Array]')这会抱怨没想到令牌o后[。
打开App,查看更多内容
随时随地看视频慕课网APP