javascript - HTML5 本地存储(XML/JSON 数据)

标签 javascript jquery xml json html

我有一个 XML 文件,如下所示:

<itemnumbers>
<item>
<itemno>123</itemno>
<desc>Desc about 123</desc>
</item>

<item>
<itemno>456</itemno>
<desc/>
</item>

...

</itemnumbers>

我想使用 HTML5 localStorage 来存储数据(并检索以便更快地访问),因为 XML 数据不会定期更改。

我打算先把它转换成JSON,然后存储在localStorage中。我应该在代码中这样做还是在 .JSON 文件而不是 .xml 文件中预先存储数据?

以后如何解析数据? 目前我正在使用 jQuery 代码来解析...类似:

$(this).find("itemno").each(function()
{
$(this).text();
$(this).next().text()
}

上述代码在 JSON 转换后是否有效?

我想要有关解决此问题的最佳方法的建议。

最佳答案

我同意您可以继续使用 XML 的一些评论。如果要转换为 JSON,可以在 javascript 中使用 For In 循环来循环它,就像在 javascript 中循环对象一样。

JSON 格式的数据:

{"itemnumbers": 
    { "item": {"itemno": 123, "desc": "Desc about 123"} }
    { "item": {"itemno": 456, "desc": "Desc about 456"} }
}

循环遍历您的数据,其中数据是上面的 JSON 对象:

for (item in data.itemnumbers) {
    //do something with item data
    console.log(data.itemnumbers[item].itemno);
    console.log(data.itemnumbers[item].desc);
}

要将对象保存在 localStorage 中,您必须将其转换为字符串格式,您可以将其作为对象再次取回。您可以使用 JSON.stringify() 使对象成为字符串,并使用 JSON.parse() 将其拉回:

//saving object to localStorage
localStorage['my_data'] = JSON.stringify(data);

//fetching object from localStorage
data = JSON.parse(localStorage['my_data']);

请注意,因为这些方法在 IE7 及更低版本上不受支持,因此您需要找到与它们兼容的解析库。这是一篇可能有助于兼容性的帖子:

Safely turning a JSON string into an object

关于javascript - HTML5 本地存储(XML/JSON 数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284187/

相关文章:

javascript - 带有数据的 Chartist.js 数组

javascript - 单击滚动 spy 链接时折叠 Bootstrap 汉堡菜单

javascript - Jquery 表插件

python - 将数据保存为矢量的 XML 文件转换为 Pandas 数据框

xml - 如何独立于区域设置从 XML 文件中正确读取浮点值?

java - Apache FOP - Fop 类型的 getDefaultHandler() 方法未定义

javascript - 如何在 Webload PT 工具中使用 javascript 进行关联时使用正则表达式提取器?

javascript - 将 json 文件加载到 Localstorage

javascript - 在 ReactJS 前端中使用 Meteor react 变量

javascript - 通过 javascript 从具有值的数组中创建 arraylist