co způsobuje tuto chybu na třetím řádku?
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
Otevřete konzoli pro zobrazení chyby
products
je objekt. (vytvoření z doslovného objektu)
JSON.parse()
slouží k převodu řetězce obsahujícího zápis JSON na objekt v jazyce Javascript.
Váš kód změní objekt na řetězec (voláním .toString()
), aby se jej pokusil analyzovat jako text JSON.
Standardně .toString()
vrací "[objekt Object]"
, což není platný JSON; proto se objevuje chyba.
Zdá se, že chcete objekt zřetězit. Udělejte tedy toto:
JSON.stringify(products);
Důvodem chyby je, že JSON.parse()
očekává hodnotu String
a products
je Array
.
Poznámka: Myslím, že se pokouší json.parse('[object Array]')
, který si stěžuje, že neočekával token o
za [
.
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"}];
změnit na
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"}]';