javascript - 尝试将 URL 存储为 JSON

标签 javascript json stringify

我正在尝试使用 HTML5 本地存储来存储有关许多网站的一些详细信息,但我遇到了一些困难。

基本上,我希望应用程序能够离线缓存数据,按照我开发它的方式,每次加载主页时,内容都会缓存为 localStorage.sitedata。我将其存储为 JSON。

我为其编写的代码如下所示:

            // Retrieve response as JSON
            response = $.parseJSON(data);

            // Store the data in HTML5 local storage as well
            var dataToCacheArray = new Array();
            for(var item in response){
                var obj = response[item];
                dataToCacheArray.push(obj);
            }
            var dataToCache = JSON.stringify(dataToCacheArray);
            localStorage.sitedata = dataToCache;

现在,dataToCacheArray 中的数据正是我想要的 - 它是一个包含许多 JavaScript 对象的数组。这是其中之一,如果我使用 console.log() 查看 dataToCacheArray,如 Chrome 的开发者工具所示:

lastChecked: "13:46:55 Wednesday 15 August 2012"
siteId: "34"
status: "1"
success: "1"
url: "http://localhost"

之后,我将 dataToCacheArray 的字符串化版本存储为 dataToCache,如果我使用 console.log() 查看它,我会得到:

[{"status":"1","success":"1","siteId":"34","lastChecked":"13:46:55 Wednesday 15 August 2012"}]

如您所见,出于某种原因,URL 未包含在字符串化版本中。知道我可能哪里出错了吗?

最佳答案

将 URL 设置为 encodeURIComponent(url) 以便在序列化为 JSON 之前在原始数据中正确转义。

关于javascript - 尝试将 URL 存储为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969665/

相关文章:

javascript - 使用 p5.js,是否可以预加载一些在 .json 文件中定义的 .json 文件,而该文件本身是使用 preload() 函数预加载的?

javascript - 如何确定 json 对象数组中特定字段的最大值?

javascript - 如何将循环 JSON 对象字符串化并将其保存到文件中?

javascript - JSON.stringify 不适用于循环 JSON 对象。该怎么办?

javascript - 带有子值的 Firebase 多路径原子更新?

javascript - 如何在剑道下拉列表中搜索文本?

javascript - 从名称、值 JSON 数组中获取一项

javascript - 如何将单个参数传递给自定义属性指令?

javascript - MongoDB:如何避免集合中的名称 double

javascript - 返回 Json.Stringify 结果