如何在angularJs中获取localStorage getItem中的内部对象值?

hvvq6cgz  于 2023-01-25  发布在  Angular
关注(0)|答案(3)|浏览(185)

我需要得到localStorage中的内部对象值。即对象内部的对象。

var filter = {
    filterWord: null,
    userId: null                
}
filter.filterWord = listCAO.sortName;
filter.userId = listCAO.currentUser;
listCAO.filterBreadcumText.push(filter);
localStorage.setItem('entityBreadCumText', listCAO.filterBreadcumText);
j9per5c4

j9per5c41#

LocalStorage仅保存字符串对:“字符串1”=“字符串2”
所以当你执行localStorage.getItem('string1 ')时,它返回' string2'。
如果你想存储一个Javascript对象,你需要先把它转换成一个字符串,JSON最适合这个。

var myObj = [{'name': 'Paul', 'age': 22}, {'name': 'Steve', 'age': 68}];
myStr = JSON.stringify(myObj);
localStorage.setItem('myData', myStr);

从localStorage读取数据时也是如此

var myStr = localStorage.getItem('myData');
var myObj = JSON.parse(myStr);
var myName = myObj[0].name;

或者一步到位

var myName = JSON.parse(localStorage.getItem('myData'))[0].name;
wnrlj8wa

wnrlj8wa2#

这可能是另一种解决办法。你可以这样使用它。

let obj = JSON.parse(localStorage.getItem('your_settings_name'));
let lobj: YourObject = <YourObject>obj;
velaa5lx

velaa5lx3#

如果数据被存储为 *nested object * 而不是c14l的答案中的数组,语法会有一些变化,让我们先存储 nested object

var myNestedObject = {"token": "Bearer", "profile": {"name":"Mustafa","expires_at":1678013824}};
myNestedStr = JSON.stringify(myNestedObject);
localStorage.setItem('myNestedData', myNestedStr);

现在让我们看看如何从嵌套对象中获取“name”:

var nestedStr = localStorage.getItem('myNestedData');
var nestedObj = JSON.parse(nestedStr);
var nestedProfile = nestedObj.profile;
var nestedName = nestedProfile.name;

或者我们也可以用一行来获得“name”:

var nestedNameWithOneLine = JSON.parse(localStorage.getItem('myNestedData')).profile.name;

相关问题