localStorage getItem logs [object Object]

zin*_*nho 5 jquery object local-storage console.log

我试图从本地存储设置和获取项目,但当我记录数据时,我得到[对象]

我试图让这个对象的视图像这样{a:v,b:v} ...

这是代码:

var widgets = localStorage.getItem('widgets');
        if (widgets == null) {
         widgets = {
            widget_lot : '',
            widget_td : '',
            widget_cwo : '',
            widget_vehicles : '',
            widget_take : ''
            };  

            widgets.widget_lot = 0;
            widgets.widget_td = 0;
            widgets.widget_cwo = 1;
            widgets.widget_vehicles = 0;
            widgets.widget_take = 0;

            localStorage.setItem('widgets', widgets);
        }

        console.log(widgets); //Logs "[object Object]"
Run Code Online (Sandbox Code Playgroud)

bra*_*der 15

本地存储仅支持string数据类型.所以你必须这样做

  1. 保存到LocalStorage之前将其转换为String

    localStorage.setItem('key', JSON.stringify(data));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 转换回JS对象,从LocalStorage读取

    data = JSON.parse(localStorage.getItem('key');
    
    Run Code Online (Sandbox Code Playgroud)

如果您的代码,它应该是 -

var widgets = JSON.parse(localStorage.getItem('widgets'));
Run Code Online (Sandbox Code Playgroud)

localStorage.setItem('widgets', JSON.stringify(widgets));
Run Code Online (Sandbox Code Playgroud)