簡體   English   中英

設置對象數組到sessionStorage

[英]Setting an array of objects to sessionStorage

好的,所以我有這個JSON:

{"Status":"OK!","ListaPermessi":
[{"IdPermesso":10,"Nome":"WIND_PARAMS"},
 {"IdPermesso":11,"Nome":"ADMIN_SERVER"},
 {"IdPermesso":21,"Nome":"REC"},
 {"IdPermesso":22,"Nome":"REC_DIST"},
 {"IdPermesso":23,"Nome":"REC_DIST_CR"}
]}

我的代碼是:

var parsedResult = JSON.parse(result); // where result is the above JSON
if (parsedResult.Status === "OK!") {
    // Set sessionStorage vars
    if (typeof(Storage) !== "undefined") {
        // localStorage & sessionStorage support!

        sessionStorage.setItem("ListaPermessi", parsedResult.ListaPermessi);
    }
    else {
        // Sorry! No web storage support :(
    }
}

但是...這不能正常工作! 分配后,從Firebug中看到的sessionStorage如下所示:

sessionStorage

  • ListaPermessi =“ [對象對象],[對象對象],[對象對象],[對象對象],[對象對象]

從JavaScript將對象數組分配給sessionStorage變量的正確方法是什么?

您需要將其轉換回JSON字符串。 您可以使用JSON.stringify方法做到這JSON.stringify

sessionStorage.setItem("ListaPermessi", JSON.stringify(parsedResult.ListaPermessi));

原因是網絡存儲只能存儲字符串,並且Object的默認toString方法返回,如您現在所見,“ [object Object]”。


旁注: typeof是運算符,而不是函數,因此不需要括號:

if (typeof Storage !== "undefined") { //...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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