[英]HTML5 localStorage (XML/JSON data)
我有一個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及更低版本不支持這些方法,因此您需要找到與它們兼容的解析庫。 這是一篇可能有助於兼容性的帖子:
我建議你編寫一個腳本,將XML數據轉換為JSON,然后將其發送到客戶端並保存。
稍后在需要時解析JSON,這很容易做到。 如下所示: -
var jsonObject = JSON.parse(yourObjectInJSON);
循環使用: -
for (item in jsonObject.itemnumbers) {
//do something with item data
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.