【发布时间】:2014-03-20 15:03:48
【问题描述】:
var currentFood = JSON.parse(localStorage.getItem("currentFood"));
<some HTML using the currentFood object>
$('#addFood').on("click", function(){
var allFood = JSON.parse(localStorage.getItem("allFood")) || [];
allFood.push(currentFood);
localStorage.setItem("allFood", JSON.stringify(allFood));
});
检查 console.log 后,currentFood 正在返回正确的对象,但是,以下代码在我的点击事件的第一行返回“意外令牌错误 0”。
【问题讨论】:
-
嗯,看起来本地存储中
allFood键的值不正确/格式错误的 JSON。您可能想通过开发者工具在点击处理程序的第一行设置断点,然后在 JS 控制台中运行localStorage.getItem('allFood')以查看存储在其中的 JSON 字符串。 -
在其他问题上,我读到它可能是编码问题 :) 你在 currentFood 中有什么奇怪的迹象吗?或者可能是太长了。
-
如果您从 localStorage 获取的对象只是 不是 存储为 JSON 的 JS 对象的字符串表示形式,则在 JSON 解析器时可能会发生此错误试图解析第一部分,
"[object..."所以也许我们需要查看将这个值放入 localStorage 的代码,看看发生了什么。 -
现在想通了,我只需要在浏览器开发工具中清除 localStorage,因为它们保存了以前更新的错误信息!上面的代码非常好。无论如何感谢您的建议!
标签: jquery json syntax local-storage