[英]Can a localStorage value be an object or array?
我正在嘗試使用localStorage("save","{teams:5, points:20}
等)在用戶的計算機中設置存儲空間。但我不確定該值是否可以作為對象。我已經檢查了互聯網,但我似乎無法在那里找到明確的答案。
var data={
teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage ("save", data);
思考?
不,鍵和值必須是DOMString
。 請參閱https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem
您可以做的是在設置之前將數據序列化為JSON
localStorage.setItem('save', JSON.stringify(data))
讀取值時,可以將其解析回對象
let saveData = JSON.parse(localStorage.getItem('save'))
本地存儲僅限於處理字符串鍵/值對,您可以使用JSON.stringify並在獲取值JSON.parse時執行以下操作
var testObject = { {name:"test", time:"Date 2017-02-03T08:38:04.449Z"} };
//將對象放入存儲區
localStorage.setItem('testObject', JSON.stringify(testObject));
//從存儲中檢索對象
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
不,localstorage將字符串作為並保存。 如果要保存任何對象,請將其轉換為字符串,然后保存。 從本地存儲中獲取它時,我們得到字符串。 你可以很容易地把它變成對象。 如果你直接將一個對象保存到localStorage,那么它將以“[object Object]”的方式保存,當從localStorage獲取它時,你將得到“[object Object]”作為String。
錯誤代碼:
var data={teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage.setItem("save", data);
localStorage.getItem("save")
你會得到“[object Object]”
正確的代碼:
var data={teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage.setItem("save",JSON.stringify(data));
localStorage.getItem("save")
從localStorage獲取值時
錯誤代碼:
localStorage.getItem("save")
它將以字符串的形式獲取數據。
正確的代碼:
JSON.parse(localStorage.getItem("save"))
它將以對象的形式返回數據。
我希望解決方案得到很好的解釋。
不,它不可能,但你可以使用stringify。 例如:
localStorage.setItem('user', JSON.stringify(r.user));
您需要使用localStorage.setItem(keyName, keyValue);
對於存儲對象,您可以使用JSON.stringify(object)
將對象轉換為字符串。
來自MDN
的keyName
包含要創建/更新的鍵名稱的DOMString。核心價值
一個DOMString,包含您要為要創建/更新的鍵提供的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.