Установка массива объектов в 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 :(
    }
}

но... это не работает должным образом! После задания, sessionStorage видно из Firebug выглядит следующим образом:

sessionStorage:

  • ListaPermessi ="[Object объект],[объект],[объект],[объект],[объект]"

Как правильно назначить массив объектов a sessionStorage переменная из javascript?

1 ответов


вам нужно превратить его обратно в строку JSON. Вы можете сделать это с помощью JSON.stringify способ:

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

причина этого в том, что веб-хранилище может хранить только строки, а по умолчанию toString метод Object возвращает, как вы уже видели, " [object Object]".


Примечание: typeof является оператором, а не функцией, поэтому нет необходимости в круглых скобках:

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