請有人能說清楚爲什麼我需要做JSON.stringify(localStorage.setItem('data'))
;然後使用JSON.parse(localStorage.getItem('data'))
,然後我可以找回我的數據對象。我將如何使用localStorage與對象
3
A
回答
4
總之:因爲本地存儲只能存儲字符串。
更長的答案是對象是複雜的數據結構,它們在引擎蓋下由對計算機內存不同部分的引用組成。您不能將它們轉儲到存儲區域,因爲當您讀取數據時,數據不會存儲在內存的這些部分。
因此,您需要以某種方式將數據序列化。
localStorage API 可能已被寫入自動執行此操作,但僅在某些情況下。這不是,你必須手動完成,這意味着你不得不知道你在做什麼,以便(a)如果你失去了數據,這不是由於localStorage API的怪異和神祕,以及(b)你可以選擇高效的內存(localStorage給你有限的空間)和簡單(只使用JSON.stringify
)。
1
轉到開發人員工具(瀏覽器中的f12) - >應用程序> Locat存儲 - >此處的任何頁面。
你可以看到,這裏的所有項目都只是字符串。如果您想將object
存儲在本地存儲,則需要將其轉換爲字符串(JSON.stringify
),當你想再次使用你的對象,你必須把它轉換回一個對象(JSON.parse
)
-2
的localStorage以字符串的形式保存數據。如果保存一個對象,它將保存爲'[object Object]'
,因爲LocalStorage將在該對象上調用.toString()
。
0
本地存儲器用於將字符串存儲爲鍵值對。您可以將對象序列化爲字符串來存儲對象,例如,
var object = {name:'somename'}
var string = JSON.stringify(object); // serialise as string
localStorage.setItem("name", string); // save string
var name = localStorage.getItem("name"); // for retrieving as string
var retrievedObj = JSON.parse(name) // for parse into object
相關問題
- 1. 如何使用LocalStorage與角
- 2. 如何使用LocalStorage在JavaScript中將對象存儲在對象中?
- 3. 我如何使用LocalStorage將json對象保存到Assets文件夾中
- 4. 如何使用XMLSerializer將對象與非對象分開使用
- 5. 如何將+ =與對象一起使用?
- 6. 如何SockJS對象存儲到localStorage的
- 7. 使用JSON對象與localStorage/sessionStorage/IndexedDB/WebSQL /等。
- 8. 如何將對象數組存儲在localStorage中?
- 9. 如何將數組存儲在html5的localStorage對象中?
- 10. 我如何將Java對象
- 11. HTML5 LocalStorage - 如何將它與超鏈接一起使用?
- 12. 我可以將File對象保存到localstorage中嗎?
- 13. 將對象存儲在localStorage中,該對象不能是json stringify'd?
- 14. localStorage - 將對象附加到對象數組
- 15. 我應該如何將用戶與域對象關聯?
- 16. localStorage的角度和對象
- 17. 向localstorage添加新對象
- 18. GWT的localStorage - 存儲對象
- 19. localStorage處理對象數組
- 20. localStorage返回空對象
- 21. 如何使用localStorage的
- 22. 如何使用setw與對象
- 23. 如何使用JUnit4TestAdapter與對象
- 24. 如何存儲與使用JavaScript對象
- 25. 如何使用krsort()與對象數組?
- 26. 如何使用processStrategy與對象模式
- 27. 我正在使用JSON.stringify(the_data)在localstorage中設置一個對象數組,我該如何重用這些數據?
- 28. 如何Angularjs與$ localStorage的
- 29. 如何將ORMLite與包含其他對象的ArrayLists的對象一起使用?
- 30. 如何分配對象而不是密鑰如何刪除localstorage?