0

I want to update the dataId field of an object in localStorage. Object:

let responseJson = {
                      id: user.id,
                      username: user.username,
                      firstName: user.firstName,
                      dataId: 1000
                   };

I am tring using following code:

let loggedInUser = localStorage.getItem('user_id');
JSON.parse(loggedInUser).userId = parseInt(2000);
localStorage.setItem('user_id', loggedInUser);

Updated:

let loggedInUser = localStorage.getItem('user_id');
loggedInUser.dataId = parseInt(2000);
console.log('loggedInUser', JSON.stringify(loggedInUser));
localStorage.setItem('user_id', JSON.stringify(loggedInUser));
Varinder Sohal
  • 907
  • 3
  • 20
  • 38

3 Answers3

2

This can help:

let responseJson = {
                      id: user.id,
                      username: user.username,
                      firstName: user.firstName,
                      dataId: 1000
                   };

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
loggedInUser.dataId = parseInt(2000);
localStorage.setItem('user_id', JSON.stringify(loggedInUser));

enter image description here

1

In localStorage, all values must be of type string. So, you have to stringify your object before storing it.

localStorage.setItem('user_id', JSON.stringify(loggedInUser))

BTW: You should check the user_id value before parsing it (or encapsulate in a try/catch).

MadDeveloper
  • 912
  • 8
  • 12
1

You can do something like this and you should stringify it before setting to localStorage:

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
let loggedInUserObj = {...loggedInUser, dataId : 2000}; // <---should be dataId
localStorage.setItem('user_id', JSON.stringify(loggedInUserObj));

Note:- You are not updating the dataId property but userId.

Jai
  • 72,925
  • 12
  • 73
  • 99
  • Thankyou for your reply but your code just added new field not updated current available filed. – Varinder Sohal Jan 29 '20 at 08:55
  • @VarinderSohal oh yes. you should parse the string to object before and then destructure it to update. and one thing in your question you have posted to update the `userId` not `dataId`. – Jai Jan 29 '20 at 09:56