簡體   English   中英

localStorage值可以是對象還是數組?

[英]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.

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