javascript – 将对象数组设置为sessionStorage

前端之家收集整理的这篇文章主要介绍了javascript – 将对象数组设置为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 =“[object Object],[object Object],[object Object]”

从javascript将一个对象数组分配给sessionStorage变量的正确方法是什么?

解决方法

您需要将其重新转换为JSON字符串.您可以使用 JSON.stringify方法执行此操作:
sessionStorage.setItem("ListaPermessi",JSON.stringify(parsedResult.ListaPermessi));

原因是Web存储只能存储字符串,而Object的默认toString方法返回,如您所见,“[object Object]”.

旁注:typeof是一个操作符,而不是一个函数,因此不需要括号:

if (typeof Storage !== "undefined") { //...
原文链接:https://www.f2er.com/js/158754.html

猜你在找的JavaScript相关文章