gpt4 book ai didi

javascript - LocalStorage Get Item with Dot/Bracket Notation 不适用于 JSON.parse()

转载 作者:行者123 更新时间:2023-11-30 18:18:49 26 4
gpt4 key购买 nike

如果可能的话,我希望能够使用速记符号从 localStorage 中获取一个项目,然后对其使用 JSON.parse()

在我下面的代码中,如果我使用以下代码,它会起作用:

var retrievedObject = JSON.parse(localStorage.getItem('testObject')); //works

但是,如果我使用以下两个速记选项之一,它就不起作用:

var retrievedObject = JSON.parse(localStorage.testObject); //doesn't work

var retrievedObject = JSON.parse(localStorage['testObject']); //doesn't work

我的所有代码都在下面和 jsFiddle 上:http://jsfiddle.net/TestB/1/ .

//var retrievedObject = JSON.parse(localStorage.getItem('testObject')); //works
var retrievedObject = JSON.parse(localStorage.testObject); //doesn't work
//var retrievedObject = JSON.parse(localStorage['testObject']); //doesn't work

if (retrievedObject == null) {

var testObject = { 'one': 1, 'two': 2, 'three': 3 };

// Put the object into storage
localStorage.testObject = JSON.stringify(testObject);

}

else {

retrievedObject.four = 4;

// Put the object into storage
localStorage.testObject = JSON.stringify(retrievedObject);

}
// Retrieve the object from storage
var retrievedObject = JSON.parse(localStorage.getItem('testObject'));

console.log('retrievedObject: ', retrievedObject);​

最佳答案

问题是第一次出现,当时 localStorage.testObject 还没有定义..

在那种情况下 localStorage.testObject 是未定义的并且 JSON.parse 因该参数而失败

另一方面,getItem 方法在内部处理并返回 null..

你可以使用 JSON.parse(localStorage.testObject || null)

关于javascript - LocalStorage Get Item with Dot/Bracket Notation 不适用于 JSON.parse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12623951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com