Localstorage原生是隻存儲字符串的內容,若是想直接存儲JSON或者是Array時是不可行。可是咱們經過一些技巧來存儲這些內容;一般通常性的代碼以下:javascript
//json對象 var testObject = { "one": 1,"two": 2, "three": 3 }; // 存儲對象到localstorage中 localStorage.setItem('testObject', JSON.stringify(testObject)); //從localstorage中獲取數據 var retrievedObject = localStorage.getItem('testObject'); console.log('retrievedObject: ', JSON.parse(retrievedObject));
若是每次這樣操做,會很煩,由於你須要不斷的重複轉換成字符串,解析字符串。爲了解決這個問題,咱們能夠經過擴展prototype原型java
var Storage=window.localStorage Storage.__proto__.setObject = function(key, value) { this.setItem(key, JSON.stringify(value)); } Storage.__proto__.getObject = function(key) { var value = this.getItem(key); return value && JSON.parse(value);//JSON.parse 不能處理`""`因此須要判斷是否爲空 }
參考資料web
Web Storage (Second Edition) http://www.w3.org/TR/webstorage/json
jStorage http://www.jstorage.info/this