簡體   English   中英

HTML5 localStorage(XML / JSON數據)

[英]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及更低版本不支持這些方法,因此您需要找到與它們兼容的解析庫。 這是一篇可能有助於兼容性的帖子:

安全地將JSON字符串轉換為對象

我建議你編寫一個腳本,將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM