Reputation: 1302
We are storing a value in localstorage with Key name - cookiesettings
. The value will be in JSON format like below.
{
"enabled":true,
"element1":{
"enabled":true
},
"element2":{
"enabled":true
},
"element3":{
"enabled":false
}
}
Not sure how to extract and check whether element3 is enabled true/false. If true, we need to show div. otherwise, hide div.
tried to use
localStorage.getItem('cookiesetting');
localStorage.getItem('cookiesetting.element3.enabled');
But getting undefined error. Tried to use:
JSON.parse(localStorage.getItem('cookiesetting'));
Still can't able to find a solution to check whether element3 - Enabled - True or False.
Upvotes: 2
Views: 271
Reputation: 588
localStorage
can't store objects, You need to store the JSON
as a string, So convert your cookieObject
to string before storing to the localStorage
localStorage.setItem('cookiesetting', JSON.stringify(cookieItem));
Get the string from localStorage and parse it and use like below
let cookiesetting = JSON.parse(localStorage.getItem('cookiesetting'));
if (!!cookiesetting) {
console.log(cookiesetting.element3.enabled);
}
let cookieItem = {
"enabled": true,
"element1": {
"enabled": true
},
"element2": {
"enabled": true
},
"element3": {
"enabled": false
}
};
localStorage.setItem('cookiesetting', JSON.stringify(cookieItem));
let cookiesetting = JSON.parse(localStorage.getItem('cookiesetting'));
if (!!cookiesetting) {
console.log(cookiesetting.element3.enabled);
}
Upvotes: 0
Reputation: 1057
Check out this documentation which says Key and Value must be String.
https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem
So you have to store it a stringified version of the Object.
localStorage.setItem('cookiesetting', JSON.stringify({
"enabled":true,
"element1":{
"enabled":true
},
"element2":{
"enabled":true
},
"element3":{
"enabled":false
}
}))
You can get the Item by:
JSON.parse(localStorage.getItem('cookiesetting'))
JSON.parse(localStorage.getItem('cookiesetting')).element3.enabled
Let me know if you have any questions.
Upvotes: 3