首页 > 解决方案 > 尝试从内部存储数据中使用 JSON.parse 时收到错误

问题描述

我和我的同学在尝试将 JSON.parse 与来自内部存储的数据一起使用时收到以下错误消息。代码是由我们的讲师提供给我们的,所以不确定问题是什么。

内部存储应该不保存任何内容并用 0 初始化“pageViews”,或者如果内部存储中有数据,它应该是一个数组。

未捕获的 SyntaxError:在 HTMLDocument.addPageView 的 JSON.parse () 的位置 1 处的 JSON 中的意外标记 o

这是我们的代码。

const pageViewsKeyName = "pageViews";

function addPageView() {

    let pageViews = localStorage.getItem(pageViewsKeyName);
    let arr = [];
    if (pageViews && pageViews.length > 0) {
        // get the array stored in local storage at pageViewsKeyName
        arr = JSON.parse(pageViews);

        // now we're able to insert an item in the page view data
        let newPageData = {
            "path": window.location.pathname,
            "timestamp": moment()
        };

        // now add new page data to the array
        arr.push(newPageData);

        // finally, we want to update our storage with the most up to date array
        localStorage.setItem(pageViewsKeyName, arr);
    }
}

标签: javascriptjson

解决方案


JSON.parse用于将字符串 JSON 值解析为 JSON 对象。看起来pageViews已经包含 JSON 对象。因此,您不需要解析它。你可以console.log(pageViews)确认一下。


推荐阅读