为什么我不能JSON.stringify localStorage

时间:2016-11-02 04:28:15

标签: javascript local-storage stringify

我试过这个

JSON.stringify(localStorage, function(key, value) {
        console.log(key);
        return (key.split('.')[0] === 'SUWDdb') ? value : undefined;
})

它只返回undefined,控制台只记录一个条目。 任何人都可以给我一个理由和解决方案吗?

2 个答案:

答案 0 :(得分:1)

好吧,顶级的任何东西都不能满足你的条件,在这种情况下你的函数返回undefined,这意味着下面没有字符串化。你可能想要:

JSON.stringify(localStorage, function(key, value) {
    console.log(key);
    return (typeof value === 'object' || key.split('.')[0] === 'SUWDdb') ? value : undefined;
            ^^^^^^^^^^^^^^^^^^^^^^^^^
})

这将允许JSON.stringify在遇到对象时保持向下遍历。

答案 1 :(得分:0)

如果您有localstorage并且想要使用

进行字符串化,请保持简单

JSON.stringify(localStorage的) 其中localstorage是具有localstorage对象的变量

jsonString = JSON.stringify(value [,replacer [,space]])

value要转换为JSON字符串的JavaScript对象。

replacer一个改变字符串化过程行为的函数,或一个String和Number对象数组,用作白名单,用于选择要包含在JSON字符串中的值对象的属性。如果此值为null或未提供,则对象的所有属性都包含在生成的JSON字符串中。

这是json.stringify函数的语法,它不是回调函数