/ / Token imprevisto ILLEGAL .. da qualche parte - coffeescript

Token inaspettato ILLEGAL .. da qualche parte - coffeescript

addToBasket = (id, qty) ->
if $.cookie("basket")?
# Basket exists
basket = $.parseJSON($.cookie("basket"))
basket.push( { "id": id, "qty": qty } )
$.cookie("basket", JSON.stringify(basket))
else
# Basket doesn"t exist
alert "Creating basket"
basket = JSON.parse([{"id": id, "qty": qty}])
$.cookie("basket", JSON.stringify(basket))

Mi sto strappando i capelli, non riesco a capirlo(equivalente compilato) da eseguire, ottenendo sempre l'errore del token illegale. Ho verificato la presenza di personaggi non autorizzati e invisibili e non c'è nulla oltre a CR / LF.

risposte:

1 per risposta № 1

Stai chiamando JSON.parse su un array, che apparentemente si qualifica come un errore di sintassi anziché come una normale eccezione a causa del modo in cui i browser lo implementano. Stai essenzialmente facendo questo:

JSON.parse([{id: 123}].toString())

Che è lo stesso di:

JSON.parse("[object Object]")

Che è JSON illegale, quindi l'errore.