tes*_*dtv 6 javascript xml jquery html5 json
我有一个XML文件,如下所示:
<itemnumbers>
<item>
<itemno>123</itemno>
<desc>Desc about 123</desc>
</item>
<item>
<itemno>456</itemno>
<desc/>
</item>
...
</itemnumbers>
Run Code Online (Sandbox Code Playgroud)
我想使用HTML5 localStorage来存储数据(并检索以便更快地访问),因为XML数据不会定期更改.
我打算先将它转换为JSON,然后将其存储在localStorage中.我应该在代码中执行此操作,还是在.JSON文件而不是.xml文件中预先提供数据?
我以后如何解析数据?目前我正在使用jQuery代码来解析...类似于:
$(this).find("itemno").each(function()
{
$(this).text();
$(this).next().text()
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在JSON转换后会起作用吗?
我想就解决这个问题的最佳方法提出建议.
我同意一些评论,您可以继续使用 XML。如果你想转换为 JSON,你可以在 javascript 中使用 For In 循环来循环它,就像在 javascript 中处理对象一样。
您的 JSON 数据:
{"itemnumbers":
{ "item": {"itemno": 123, "desc": "Desc about 123"} }
{ "item": {"itemno": 456, "desc": "Desc about 456"} }
}
Run Code Online (Sandbox Code Playgroud)
循环遍历数据,其中 data 是上面的 JSON 对象:
for (item in data.itemnumbers) {
//do something with item data
console.log(data.itemnumbers[item].itemno);
console.log(data.itemnumbers[item].desc);
}
Run Code Online (Sandbox Code Playgroud)
要将对象保存在 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']);
Run Code Online (Sandbox Code Playgroud)
请注意,因为 IE7 及以下版本不支持这些方法,因此您需要找到与它们兼容的解析库。这是一篇可能有助于兼容性的文章: